# 解题思路:
# ①本题关键在于把sum聚合函数作为窗口函数使用,所有聚合函数都能用做窗口函数,其语法和专用窗口函数完全相同。
# sum(<汇总列>) over(<排序列>) as 别名;
# ②光看题目“前两个员工的salary累计和”不是很好理解,结合输出格式可以理解为running_total列是逐个员工的工资的累计和,每一行的工资都是前面所有行的工资总计。
# ③这有一个小bug,题目没有限定时间为当前,而按照输出格式来看和通过情况来看,只有限定时间为当前'9999-01-01'才能符合输出格式,才能通过,一开始考虑用员工分组,但是员工分组得到的结果并非题目本意,必须限定时间为当前。
select s.emp_no,s.salary,SUM(salary) OVER (ORDER BY emp_no) as running_total 
from salaries s where s.to_date='9999-01-01' 
group by s.emp_no

# 题干表述应该是有问题,running_total给出的应该是前面所有员工的salary之和
# select a.emp_no, a.salary, sum(b.salary)
# from salaries as a, salaries as b
# where b.emp_no <= a.emp_no
# and a.to_date = '9999-01-01'
# and b.to_date = '9999-01-01'
# group by a.emp_no
# order by a.emp_no asc