秋招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_not
1000117
1000416
1000918

题目解析:

解法:

select emp_no,count(emp_no) as t
from salaries
group by emp_no
having t > 15;

注:
1、用count()函数和group by语句可以统计同一emp_no值的记录条数;
2、根据题意,输出的涨幅次数为t,故用AS语句将count(emp_no)的值转换为t
3、由于count()函数不可用于WHERE语句中,故使用having语句来限定t>15的条件
4、最后存在一个理解误区,涨幅超过15次,salaries中相应的记录数应该超过16(从第2条记录开始算作第1次涨幅),不过题目为了简单起见,将第1条记录当作第1次涨幅,所以令t>15即可;
注意: 严格来说,下一条salary高于本条才算涨幅,但本题只要出现了一条记录就算一次涨幅,salary相同可以理解为涨幅为0,salary变少理解为涨幅为负.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值