【牛客SQL】SQL8 找出所有员工当前薪水salary情况

366 阅读1分钟

题目描述

在这里插入图片描述

描述 有一个薪水表,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 DISTINCTORDER 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;