SQL练习60:统计salary的累计和running_total
题目链接:牛客网
题目描述 按照salary
的累计和running_total
,其中running_total
为前N个当前( to_date = '9999-01-01')
员工的salary
累计和,其他以此类推。 具体结果如下Demo
展示。
CREATE TABLE `salaries` ( `emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`));
输出格式:
emp_nosalaryrunning_total100018895888958100027252716148510003433112047961000474057278853100059469237354510006433114168561000788070504926100099540960033510010944096947441001125828720572解法 根据题目的要求使用窗口函数较为简单。
SELECT emp_no, salary, SUM(salary) OVER(ORDER BY emp_no) AS running_total
FROM salaries
WHERE to_date = '9999-01-01'