题解 | #统计salary的累计和running_total#

统计salary的累计和running_total

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

SELECT emp_no,salary,(
    select sum(salary)
    from salaries s2
    where s2.emp_no <= s1.emp_no
    and to_date = '9999-01-01'
) running_total
from salaries s1
where to_date = '9999-01-01'

之前有一题给员工排序号有大佬不用窗口函数,十分震惊,这次写了类似的 子查询使用s2.emp_no <= s1.emp_no,而不是>=,因为父查询遍历每一行记录会向子查询传入一个emp_no,累加的时候是取比父查询的emp_no小的部分 当然,无论父查询还是子查询,都不要忘记to_date = '9999-01-01' 能用窗口函数是最好的

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务