找出所有员工当前(to_date='9999-01-01')具体的薪水salary情况,对于相同的薪水只显示一次,并按照逆序显示
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 |
---|
94692 |
94409 |
88958 |
88070 |
74057 |
72527 |
59755 |
43311 |
25828 |
示例1
输入
复制
无
输出
复制
无
--找出所有员工当前(to_date='9999-01-01')具体的薪水salary情况,
--对于相同的薪水只显示一次,并按照逆序显示
SELECT DISTINCT
salary
FROM
`salaries`
WHERE
to_date = '9999-01-01'
ORDER BY
salary DESC;
--第二种方法
SELECT
salary
FROM
salaries
WHERE
to_date = '9999-01-01'
GROUP BY
salary
ORDER BY
salary DESC;
/*对于文本类型的字段,直接使用count distinct的查询效率是非常低的,而先做group by然后count往往能提升查询效率。但实验表明,对于不同的字段,count distinct与count group by的性能并不一样,而且其效率也与目标数据集的数据重复度相关。在不同记录数较小时,count group by性能普遍高于count distinct,尤其对于text类型表现的更明显。而对于不同记录数较大的场景,count group by性能反而低于直接count distinct。*/