首页 > 试题广场 >

查找员工编号emp_no为10001其自入职以来的薪水sal

[编程题]查找员工编号emp_no为10001其自入职以来的薪水sal
  • 热度指数:120812 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
查找员工编号emp_no为10001其自入职以来的薪水salary涨幅(总共涨了多少)growth(可能有多次涨薪,没有降薪)
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`));

输入描述:


输出描述:
growth
28841
示例1

输入

输出

头像 卑微大橙子在线求offer
发表于 2020-08-08 17:52:04
使用左连接的方法,在salaries表的基础上,利用to_date = from_date的约束,给每条数据后面再加上此次涨幅后的工资,然后将两次的工资做差,就知道此次涨薪多少了;也就是说做连接之后表中就记录了涨薪前和涨薪后的工资各为多少,然后做差求和即可。 select sum(s2.salary 展开全文
头像 王司徒为你写诗201811131302775
发表于 2020-09-27 10:54:23
select (MAX(salary)-MIN(salary)) as growth from salaries     where emp_no = '10001'
头像 阿狸男朋友
发表于 2020-06-15 23:57:06
select ( select max(s1.salary) from salaries s1 where s1.emp_no=10001)-( select min(s2.salary) from salaries s2 where s2.emp_no=1000 展开全文
头像 N刻后告诉你
发表于 2020-05-19 20:34:16
题目:查找员工编号emp_no为10001其自入职以来的薪水salary涨幅值growth 方法1:利用子查询查询最后一次工资和第一次工资SELECT(SELECT salary FROM salaries WHERE emp_no=10001 AND to_date=(SELECT MAX 展开全文
头像 无敌大花彪
发表于 2020-06-18 22:39:34
select (select salary from salarieswhere emp_no = '10001'order by to_date desc limit 1)-(select salary from salarieswhere emp_no = '10001'order by fro 展开全文
头像 高质量搬砖人
发表于 2021-01-29 16:28:40
方法)因为没有降薪,直接最大值减最小值即可得涨幅 可能有多次涨薪,没有降薪 SELECT (MAX(salary)-MIN(salary))growth -- 薪水涨幅 FROM salaries WHERE emp_no  展开全文
头像 超超i7宝
发表于 2020-11-17 16:18:00
SELECT MAX(salary) - MIN(salary) AS growthFROM salariesWHERE emp_no = 10001
头像 109号
发表于 2021-01-04 16:38:44
1.使用MAX和MIN计算找出来买个员工的薪水最大值和最小值,做减法,这种解法的前提是工资一直是上涨的 SELECT MAX(salary)-MIN(salary) AS growth FROM salaries WHERE emp_no=10001 GROUP BY emp_no2.使用SUM这种 展开全文
头像 饭元宝
发表于 2020-11-18 21:45:08
直接聚合函数,大减小 select max(salary)-min(salary) growth from salaries where emp_no = 10001;