LeetCode 【困难】数据库-第579:查询员工的累计薪水
2021/7/2 19:22:28
本文主要是介绍LeetCode 【困难】数据库-第579:查询员工的累计薪水,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
题目
数据
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:查询员工的累计薪水的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享