牛客网SQL-第8题-找出所有员工当前具体的薪水salary情况
Posted 小白蛇D&A
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了牛客网SQL-第8题-找出所有员工当前具体的薪水salary情况相关的知识,希望对你有一定的参考价值。
牛客网SQL-第8题-找出所有员工当前具体的薪水salary情况
往期牛客网SQL:
第1题:
https://blog.csdn.net/qq_42075754/article/details/116203575
第2题:
https://blog.csdn.net/qq_42075754/article/details/116498770
第4题:
https://blog.csdn.net/qq_42075754/article/details/116646684
第7题:
https://blog.csdn.net/qq_42075754/article/details/116975762
**
第8题题目:
**
薪水表,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`));
题目要求
请你找出所有员工具体的薪水salary情况,对于相同的薪水只显示一次,并按照逆序显示,以上例子输出如下:
题目解析与理解
先献上我的解题源码:
方法1:
SELECT distinct
salary
FROM
salaries
ORDER BY
salary DESC
方法二:
SELECT
salary
FROM
salaries
GROUP BY
salary
ORDER BY
salary DESC
在这两个方法都没有用到where过滤, 这个都是可以的
在牛客网解题思路中很多人中都有where过滤
接在from后,如下
SELECT
salary
FROM
salaries
WHERE
to_date = '9999-01-01'
GROUP BY
salary
ORDER BY
salary DESC
理解:
方法1中distinct是过滤掉重复的字段, 在题目上(72527)两个相同的薪水,
用distinct过滤后就只有一个了, 这样就符合题目要求了
方法2中GROUP BY是主要是用于分组, 但是有一定的过滤重复的作用.
利用分组后就只有两个字段了. 这样也就符合题目要求了
以上是关于牛客网SQL-第8题-找出所有员工当前具体的薪水salary情况的主要内容,如果未能解决你的问题,请参考以下文章
牛客网SQL-第8题-找出所有员工当前具体的薪水salary情况
牛客网SQL-第8题-找出所有员工当前具体的薪水salary情况
牛客网SQL-第九题-获取所有非manager的员工emp_no
牛客网SQL-第九题-获取所有非manager的员工emp_no