这是SQL今日一题的第7篇文章

题目描述

找出所有员工当前(to_date=\’9999-01-01\’)具体的薪水salary情况,对于相同的薪水只显示一次,并按照逆序显示。(只输出salary)

这题用到salaries表

方法1

select distinct salary from salaries 
where to_date = \'9999-01-01\'
order by salary desc

1、这道题就简单许多了,首先我们知道salaries表里一个员工编号可能对应多条记录,因为是由薪资变化的,所以这题给了限制条件“当前”,即to_date = \’9999-01-01\’

2、同时对于薪资相同的只输出一条,就用distinct去重即可

3、最后降序排列

方法2

select salary from salaries 
where to_date = \'9999-01-01\'
group by salary
order by salary desc

1、where子句限定当前日期的条件

2、group by对salary分组,也可以达到去重的效果,和distinct的区别在于数据量大的时候,可以使用group by,比用distinct效率高

3、最后order by降序

知识点

distinct

  • 检索不同行

  • distinct column,放在列名前

group by

  • group by子句用来创建分组,

  • group by子句要写在where后,order by 前

order by

  • order by column,指定单个列排序

  • order by column1,column2,多个列排序,逗号隔开

  • 默认升序,即ASC,如需降序,后加DESC,如order by column desc


猜你喜欢:
数据分析应关注AARRR模型的哪些指标

泰坦尼克号数据分析

深入浅出数据分析

@ 作者:可乐
@ 公众号/知乎专栏/头条/简书:可乐的数据分析之路
@加个人微信:data_cola,备注:进群,拉你入 可乐的数据分析群 和各行各业的小伙伴交流探讨数据分析相关内容

微信公众号
个人微信号

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。