7

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

http://www.nowcoder.com/questionTerminal/6d4a4cff1d58495182f536c548fee1ae

题目:查找薪水涨幅超过15次的员工号emp_no以及其对应的涨幅次数t
题目隐含:
1.一条记录就算一次涨幅(严格意义上,从第二条记录算起才算一次涨幅)
2.任何一条记录都算一次涨幅(严格意义上,必须比上一条记录的工资高才算一次涨幅)

分组+聚合函数
select emp_no, count() t
from salaries
group by emp_no
having t > 15;
补充:如果考虑第二条记录算起才算一次涨幅,应该写:
select amp_no, count(distinct from_date)-1 as t
from salaries
group by emp_no
having t>15
补充:如果考虑严格意义上的涨幅,应该写:
select a.emp_no, count(
) t
from salaries a inner join salaries b
on a.emp_no=b.emp_no and a.to_date=b.from_date
where a.salary < b.salary
group by a.emp_no
having t>15

全部评论
现在题目已经改成“查找薪水变动超过15次的员工号emp_no以及其对应的变动次数t”了
14 回复 分享
发布于 2020-06-26 10:58
我认为楼主没有认真读题,题目说薪资变动15次,没有说涨薪15次。应该是count(distinct salary)
8 回复 分享
发布于 2020-08-11 10:22
补充的sql有问题啊
3 回复 分享
发布于 2021-05-08 09:00
按照sql的执行顺序,应该是先having,然后select,having直接t也可以被识别出来吗?
3 回复 分享
发布于 2021-05-07 17:19
现在题目记录是超过15次了。
3 回复 分享
发布于 2021-03-08 23:14
第二个去重之后为什么还要减1呢,distinct不是已经把前两条记录算做一条了吗
2 回复 分享
发布于 2021-04-28 10:06
想问一下select不是最后运行吗,having那里可以直接t>15吗,t这个时候还没有出来呀,为啥也对啊
1 回复 分享
发布于 2022-08-31 18:35 浙江
原题又变了,查找薪水记录超过15条的,这题目主要是having的使用,因为使用了count函数导致无法使用where。
1 回复 分享
发布于 2022-08-29 14:06 广东
那个from_date 和to_date是什么意思的字段。。没注解意思,不方便理解
1 回复 分享
发布于 2022-03-09 09:55
请问下,如果统计薪资涨幅(为正)超过15次,以下代码可以吗? (因为楼主补充的代码牛客总是报错) select emp_no,count(*) t from (select *, salary-(LAG(salary,1) over(partition by emp_no order by to_date)) as 工资涨幅 from salaries ) as s2 where s2.工资涨幅>0 group by s2.emp_no having t>=15
1 回复 分享
发布于 2022-01-06 21:56
现在的题目应该是这样子的select emp_no, count() t from salaries group by emp_no having t>15
1 回复 分享
发布于 2021-10-18 23:00
那楼主以后可以贴一下当时做题的题目,以免以后题目有变,搞得大家都很懵。
1 回复 分享
发布于 2021-07-29 22:54
inner join执行结果不对,left join执行正确,为什么?
1 回复 分享
发布于 2021-05-07 19:30
楼主的第二个观点学到了~
1 回复 分享
发布于 2020-10-06 14:21
为什么要distinct from_date呢,是按天统计薪资变化吗,但是也有可能一天就有两次薪资变化,这样去重的话不就少了吗;而且一般起始时间不会重复的……
1 回复 分享
发布于 2020-09-04 16:23
第一个补充敲成了select amp_no,应该是emp
1 回复 分享
发布于 2020-08-27 17:31
不好意思,想问一下,直接count()t是什么用法呢?这个是括号里省略了emp_no吗?
1 回复 分享
发布于 2020-08-01 12:21
楼主确实很厉害,写的很细!虽然题目变了,但楼主的解题思路值得学习!
点赞 回复 分享
发布于 2024-08-13 16:44 广东
钻牛角尖的第一名
点赞 回复 分享
发布于 2022-05-11 23:52
现在已经改成“薪水记录超过15条 ”涨幅,变动都没了
点赞 回复 分享
发布于 2022-04-23 09:26

相关推荐

点赞 评论 收藏
分享
喜欢疯狂星期四的猫头鹰在研究求职打法:短作业优先
点赞 评论 收藏
分享
评论
434
34
分享

创作者周榜

更多
牛客网
牛客企业服务