首页 > 数据库技术 > 详细

LeetCode 【困难】数据库-第579:查询员工的累计薪水

时间:2021-07-02 23:11:42      阅读:26      评论:0      收藏:0      [点我收藏+]

题目

技术分享图片

数据

技术分享图片

1.薪资累加、月份排名(降序)

select *,
sum(salary) over(partition by id order by month ) sum_salary, # order by记得排序,不然都是总和。
rank() over(partition by id order by `month` desc) rks  # 按月份排序,跳跃
from employee

技术分享图片

2.去掉最近一个月的,因为月份是按照倒序,所以直接筛选排名第一的就好 ,接着就是按两个字段排序


SELECT t.id, t.`month`, t.sum_salary FROM
(

 SELECT id, `month`, salary,
 SUM(salary) over(PARTITION BY id ORDER BY `month` ROWS 2 PRECEDING) sum_salary, -- 累加的总薪水
 rank() over(PARTITION BY id ORDER BY `month` DESC) ranks   -- 排名好去掉最近一个月
 FROM employee
 
) t
WHERE t.ranks > 1
order by id ,`month` desc;

技术分享图片

LeetCode 【困难】数据库-第579:查询员工的累计薪水

原文:https://www.cnblogs.com/Tdazheng/p/14964373.html

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