题解 | #统计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' 能用窗口函数是最好的
