mysql的distinct和group by

事情起因是从一次sql查询引发的:

找出所有员工当前(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`));

这道题有一个比较统一的解法:(select .. distinct+order by)

复制代码
select
    distinct salary
from
    salaries
where
    to_date='9999-01-01'
order by
    salary
desc;
复制代码

但是别人给出另一种方案(select .. group by order by)

使用分组语句去重

比较两种解法发现:第二种方案在大数据量前提下查询效率更高一点

复制代码
select
    salary
from
    salaries
where
    to_date='9999-01-01'
group by
    salary
order by
    salary
desc;
复制代码

 

 

这里贴出别人做的实验连接:https://blog.csdn.net/qq_36670734/article/details/105844908
posted @   Java民工陆小凤  阅读(265)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示