SQL练习7: 查找薪水涨幅超过15次的员工号emp_no以及其对应的涨幅次数t
题目描述
- 题目描述
- 考察知识点
- 解题思路
有一个薪水表,salaries
简况如下: 请你查找薪水记录超过 15 次的员工号
emp_no
以及其对应的记录次数 t
,以上例子输出如下:
GROUP BY
,HAVING
。
1️⃣ 根据题目要求,首先明确查询的结果中包含 emp_no
,以及变动次数 t
。使用 count
函数和 group by
分组可以统计变动次数。
SELECT emp_no, count(salary) t
FROM salaries
GROUP BY emp_no
HAVING t > 15
2️⃣ 之前题目是要求统计涨薪超过 15 次员工 emp_no
和次数 t
,所以上面的肯定是行不通的,真正的涨幅一般都是正数,并且第二次开始才算一次涨幅,所以应该按照下面的写法来查询。
SELECT s1.emp_no, COUNT(s1.salary) AS t
FROM salaries AS s1 INNER JOIN salaries AS s2
ON s1.emp_no = s2.emp_no AND s1.to_date = s2.from_date
WHERE s1.salary 15
题目来源:牛客网-SQL数据库实战题
✅ 每日打卡,❤ 点个赞再走吧!!!❤ 后续会继续分享 Mysql 方面的文章,如果感兴趣的话可以点个关注不迷路哦~。