校招算法笔面试 | SQL笔试面试编程题-统计salary的累计和running_total

题目

题目链接

这道题目要求我们计算在职员工的累计薪水和。我们要做的事情如下:

1. 确定总体问题

我们需要从薪水表中提取当前在职员工(to_date = '9999-01-01')的薪水信息,并计算每个员工的累计薪水和。累计薪水和是指在按员工编号升序排列的情况下,当前员工及其之前所有员工的薪水总和,并返回员工编号、薪水和累计薪水和。

2. 分析关键问题
  • 筛选在职员工:通过to_date = '9999-01-01'条件筛选出在职员工。
  • 计算累计薪水和:使用窗口函数SUM计算累计薪水和。
3. 解决每个关键问题的代码及讲解
步骤1:筛选在职员工

我们通过to_date = '9999-01-01'条件筛选出在职员工:

where
    to_date = '9999-01-01'
步骤2:计算累计薪
### ER图中的实体关系关联描述 在ER图中,`SAL_ENUM_REF`、`BAS_SAL_ITEM` `SAL_TAX_RATE_DETAIL` 是三个关键的实体,它们之间的关系可以通过以下方式描述[^1]: - **`SAL_ENUM_REF`** 表示销售枚举引用表,通常用于存储与销售相关的枚举值及其引用信息。它可能包含字段如 `ENUM_ID`(枚举ID)、`ENUM_NAME`(枚举名称)等。 - **`BAS_SAL_ITEM`** 表示基础销售项目表,用于记录销售项目的基本信息。其字段可能包括 `ITEM_ID`(项目ID)、`ITEM_NAME`(项目名称)、`UNIT_PRICE`(单价)等。 - **`SAL_TAX_RATE_DETAIL`** 表示销售税率明细表,用于存储每个销售项目的税率详细信息。其字段可能包括 `TAX_RATE_ID`(税率ID)、`TAX_RATE`(税率)、`ITEM_ID`(项目ID,外键)等。 #### 实体间的关联关系 - **`SAL_ENUM_REF` `BAS_SAL_ITEM` 的关联** `SAL_ENUM_REF` 通过 `ENUM_ID` 字段与 `BAS_SAL_ITEM` 中的某个字段(例如 `ENUM_REF_ID`)建立关联。这种关系通常表示一个销售项目可以引用多个枚举值[^2]。 - **`BAS_SAL_ITEM` `SAL_TAX_RATE_DETAIL` 的关联** `BAS_SAL_ITEM` 通过 `ITEM_ID` 字段与 `SAL_TAX_RATE_DETAIL` 中的 `ITEM_ID` 建立一对一或多对多的关系。这表明每个销售项目可能对应一个或多个税率明细记录[^3]。 #### 示例代码:SQL查询关联配置 以下是展示这三个实体之间关联关系的SQL查询示例: ```sql SELECT bsi.ITEM_ID, bsi.ITEM_NAME, ser.ENUM_NAME, strd.TAX_RATE FROM BAS_SAL_ITEM bsi LEFT JOIN SAL_ENUM_REF ser ON bsi.ENUM_REF_ID = ser.ENUM_ID LEFT JOIN SAL_TAX_RATE_DETAIL strd ON bsi.ITEM_ID = strd.ITEM_ID; ``` 此查询将返回销售项目的基本信息、对应的枚举名称以及税率信息[^4]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值