找出所有员工当前(to_date=‘9999-01-01’)具体的薪水salary情况,对于相同的薪水只显示一次,并按照逆序显示
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
));
链接:https://www.nowcoder.com/questionTerminal/6d4a4cff1d58495182f536c548fee1ae
来源:牛客网
此题知识点:
-
解题思路:
1、 相同薪水显示一次,则使用SELECT DISTINCT可去除重复值
2、要求逆序排列,则在最后应使用ORDER BY salary DESC -
去重
对于distinct与group by的使用:
1、当对系统的性能高并数据量大时使用group by
2、当对系统的性能不高时使用数据量少时两者皆可
3、尽量使用group by
方法1: 利用group by的去重
select
salary
from salaries
where to_date = '9999-01-01'
group by salary
order by salary desc
方法2:利用distinct 去重
select
distinc salary
from salaries
where to_date = '9999-01-01'
order by salary desc