SQL练习7:查找薪水涨幅超过15次的员工号emp_no以及其对应的涨幅次数t

SQL练习7: 查找薪水涨幅超过15次的员工号emp_no以及其对应的涨幅次数t

题目链接:牛客网

题目描述
查找薪水变动超过15次的员工号emp_no以及其对应的变动次数t

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_no,以及变动次数t。使用count函数和group by分组可以统计变动次数。题中要求查找变动超过15次的员工号,那么就应该要求同一个emp_nosalary有存在至少16条,因为从第二条记录开始才算有涨幅,无论是涨幅的正负性。但实际提交的时候发现题中貌似没有考虑这一问题。

SELECT emp_no, count(salary) t
FROM salaries
GROUP BY emp_no
HAVING t > 15

猜你喜欢

转载自blog.csdn.net/qq_43965708/article/details/113332297