题目描述
描述
有一个薪水表,salaries简况如下:
请你找出所有员工具体的薪水salary情况,对于相同的薪水只显示一次,并按照逆序显示,以上例子输出如下:
示例1
输入:
drop table if exists `salaries` ;
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`));
INSERT INTO salaries VALUES(10001,72527,'2002-06-22','9999-01-01');
INSERT INTO salaries VALUES(10002,72527,'2001-08-02','9999-01-01');
INSERT INTO salaries VALUES(10003,43311,'2001-12-01','9999-01-01');
输出:
72527
43311
题解
考察SELECT DISTINCT
和ORDER BY
:
运行时间:13ms
超过80.81% 用Sqlite提交的代码
占用内存:3448KB
超过16.05%用Sqlite提交的代码
SELECT DISTINCT salary FROM salaries
ORDER BY salary DESC;
还记得有些是离职的,时间是'9999-01-01'
,所以还要补条件:
运行时间:16ms
超过62.56% 用Sqlite提交的代码
占用内存:3340KB
超过53.20%用Sqlite提交的代码
SELECT DISTINCT salary FROM salaries
WHERE to_date = '9999-01-01'
ORDER BY salary DESC;