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

本文解析了如何通过GROUP BY和HAVING操作在SQL中查询薪水表salaries,找出员工emp_no及涨薪次数t,超过15次的记录。关键在于理解如何正确计算涨薪次数,涉及到了内连接和条件判断。
摘要由CSDN通过智能技术生成

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

题目描述

有一个薪水表,salaries 简况如下:
在这里插入图片描述
请你查找薪水记录超过 15 次的员工号 emp_no 以及其对应的记录次数 t,以上例子输出如下:
在这里插入图片描述


考察知识点

GROUP BYHAVING

解题思路

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 < s2.salary
GROUP BY s1.emp_no
HAVING t > 15

题目来源:牛客网-SQL数据库实战题

每日打卡,❤ 点个赞再走吧!!!❤

在这里插入图片描述
后续会继续分享 Mysql 方面的文章,如果感兴趣的话可以点个关注不迷路哦~。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dream丶Killer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值