首页 > 数据库技术 > 详细

SQL60 统计salary的累计和running_total

时间:2021-09-06 04:56:49      阅读:22      评论:0      收藏:0      [点我收藏+]

 

条件:

1 CREATE TABLE `salaries` ( `emp_no` int(11) NOT NULL,
2 `salary` int(11) NOT NULL,
3 `from_date` date NOT NULL,
4 `to_date` date NOT NULL,
5 PRIMARY KEY (`emp_no`,`from_date`));

技术分享图片

 

要求:

1、输出emp_no,salary,running_total;
2、running_total为前N个当前( to_date = ‘9999-01-01‘)员工的salary累计和。

 

解析:

本题的难点是计算running_total,emp_no在哪一行,running_total就累加到哪一个emp_no

应以emp_no为线索,运用子查询对salary进行累加

 to_date的条件也是令人忽视的点,外部查询和子查询都需要

 

代码:

1 select emp_no, salary,
2 
3 ( select sum(salary) from salaries as s2 where s1.emp_no >= s2.emp_no and  s2.to_date = 9999-01-01 ) as running_total
4 
5 from salaries as s1
6 
7 where s1.to_date = 9999-01-01 ;

 

SQL60 统计salary的累计和running_total

原文:https://www.cnblogs.com/Panzm123/p/15228824.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!