LeetCode(数据库)- 查询员工的累计薪水
发布日期:2021-06-30 23:38:02
浏览次数:2
分类:技术文章
本文共 1672 字,大约阅读时间需要 5 分钟。
题目链接:
题目大意:略。
解题思路:略。
AC 代码
-- 解决方案(1)select Id, AccMonth as Month, sum(Salary) as Salaryfrom( select a.Id as Id, a.Month as AccMonth, b.Month as Month, b.Salary as Salary from ( select Employee.Id as Id, Employee.Month as Month from Employee, (select Id, max(Month) as Month from Employee group by Id) as LastMonth where Employee.Id = LastMonth.Id and Employee.Month != LastMonth.Month) as a join Employee as b on a.Id = b.Id and a.Month - b.Month <= 2 and a.Month - b.Month >= 0) as accgroup by Id, AccMonthorder by Id, Month desc;-- 解决方案(2)SELECT E1.id, E1.month, (IFNULL(E1.salary, 0) + IFNULL(E2.salary, 0) + IFNULL(E3.salary, 0)) AS SalaryFROM (SELECT id, MAX(month) AS month FROM Employee GROUP BY id HAVING COUNT(*) > 1) AS maxmonth LEFT JOIN Employee E1 ON (maxmonth.id = E1.id AND maxmonth.month > E1.month) LEFT JOIN Employee E2 ON (E2.id = E1.id AND E2.month = E1.month - 1) LEFT JOIN Employee E3 ON (E3.id = E1.id AND E3.month = E1.month - 2)ORDER BY id ASC , month DESC;-- 解决方案(3)WITH t1 AS( SELECT e1.Id Id1, e1.Month Month1, e2.Month Month2, e3.Month Month3, IFNULL(e1.Salary, 0) + IFNULL(e2.Salary, 0) + IFNULL(e3.Salary, 0) Salary FROM Employee e1 LEFT JOIN Employee e2 ON e1.Id = e2.Id AND e1.Month = e2.Month + 1 LEFT JOIN Employee e3 ON e2.Id = e3.Id AND e2.Month = e3.Month + 1),t2 AS(SELECT Id1, Month1, Month2, Month3, Salary, ROW_NUMBER() OVER(PARTITION BY Id1 ORDER BY Id1, IFNULL(Month1, IFNULL(Month2, Month3)) DESC) rkFROM t1)SELECT Id1 id, Month1 month, SalaryFROM t2WHERE rk <> 1
转载地址:https://lux-sun.blog.csdn.net/article/details/117771615 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年05月04日 02时01分22秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Django + REST学习笔记
2019-04-30
【转载】将Ubuntu16.04 中gedit在仅显示一个文件时显示文件名tab
2019-04-30
fstream 对象多次使用时注意clear
2019-04-30
调试 LenaCV 3D Camera (Linux)
2019-04-30
OpenCV杂记 - Mat in C++
2019-04-30
location区段
2019-04-30
nginx访问控制、基于用户认证、https配置
2019-04-30
SaltStack
2019-04-30
linux内存的寻址方式
2019-04-30
ubunut16.04的pip3出现问题,重新安装pip3
2019-04-30
how2heap-double free
2019-04-30
how2heap-fastbin_dup_consolidate
2019-04-30
orw_shellcode_模板
2019-04-30
fmt在bss段(neepusec_easy_format)
2019-04-30
python 函数式编程
2019-04-30
python编码
2019-04-30