SQL今日一题(7):去重
16lz
2021-01-22
题目描述
找出所有员工当前(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
更多相关文章
- PHP基于limit子句的分页详细操作
- 程序员的薪资是如何确定出来的?
- 2017中国程序员薪资调查:平均薪资10K!
- 做完小程序项目、老板给我加了6k薪资~
- 将SQL查询的SELECT子句解析为PHP数组
- ()子句中的MySQL查询在索引列上很慢
- 忽略OR子句后的MySQL AND子句[重复]
- 如何通过使用where子句与字符串格式(varchar(103),...,10)将103格式化