27.【较难】给出每个员工每年薪水涨幅超过5000的员工编号、薪水变更开始日期以及薪水涨幅值

给出每个员工每年薪水涨幅超过5000的员工编号emp_no

http://www.nowcoder.com/questionTerminal/eb9b13e5257744db8265aa73de04fd44

法一

select s1.emp_no,
       s1.from_date,
       s1.salary-s2.salary as salary_growth
from salaries s1,salaries s2
where s1.emp_no=s2.emp_no
and (strftime('%Y', s1.to_date)-strftime('%Y', s2.to_date)=1 or
    strftime('%Y', s1.from_date)-strftime('%Y', s2.from_date)=1)
and s1.salary-s2.salary>5000
order by salary_growth desc

法二

select s1.emp_no,
       s1.from_date,
       s1.salary-s2.salary as salary_growth
from salaries s1,salaries s2
where s1.emp_no=s2.emp_no
and  s1.from_date=s2.to_date
-- 保证S1表是S2后面的表,例如S1.from_date为'1987-06-26',S2.from_date为'1986-06-26'
and s1.salary-s2.salary>5000
order by salary_growth desc
数据分析阿宇君的SQL题解 文章被收录于专栏

数据分析的SQL题目

全部评论

相关推荐

11-24 00:11
已编辑
广东工业大学 算法工程师
避雷深圳  yidao,试用期 6 个月。好嘛,试用期还没结束,就直接告诉你尽快找下一家吧,我谢谢您嘞
牛客75408465号:笑死,直属领导和 hr 口径都没统一,各自说了一些离谱的被裁理由,你们能不能认真一点呀,哈哈哈哈哈😅😅😅
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务