题解:统计salary的累计和running_total

统计salary的累计和running_total

http://www.nowcoder.com/questionTerminal/58824cd644ea47d7b2b670c506a159a6

SELECT 
emp_no, salary, SUM(salary) OVER(ORDER BY emp_no) AS running_total
FROM
salaries
WHERE to_date = '9999-01-01'

窗口函数直接搞定

全部评论
此处因为over()中使用了order by子句,所以默认从第一行累计到当前行;若不使用order by子句,则会针对整个分区求和(此处没指定partition by,所以将整个表视为一个分区)
14
送花
回复 分享
发布于 2021-09-16 10:58
这个窗口函数运行效率最高
2
送花
回复 分享
发布于 2021-04-23 22:24
现代汽车中国前瞻数字研发中心
校招火热招聘中
官网直投
居然还有这种函数,现在都还没看懂。
2
送花
回复 分享
发布于 2021-09-11 15:53
为什么 SELECT emp_no, salary, SUM(salary) OVER(partiton BY emp_no) AS running_total FROM salaries WHERE to_date = '9999-01-01' 会报错
点赞
送花
回复 分享
发布于 2021-08-22 15:34
其实也可以通过定义变量or表连接来做
点赞
送花
回复 分享
发布于 2022-02-08 11:29
这么写是不对的吧?salary与running_total就都是9999-01-01了
点赞
送花
回复 分享
发布于 2022-02-28 17:17

相关推荐

136 5 评论
分享
牛客网
牛客企业服务