欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 艺术 > SQL DISTINCT 与 GROUP BY

SQL DISTINCT 与 GROUP BY

2025/4/3 16:07:30 来源:https://blog.csdn.net/lizhengyu891231/article/details/146963534  浏览:    关键词:SQL DISTINCT 与 GROUP BY

DISTINCT 关键字

DISTINCT 用于返回唯一不同的值,消除结果集中的重复行。

SELECT DISTINCT column1, column2 
FROM table_name;

特点:

  • 只用于消除重复行

  • 不进行任何聚合计算

  • 适用于简单的去重场景

  • 性能通常比 GROUP BY 好(对于简单去重)

GROUP BY 子句

GROUP BY 用于根据一个或多个列对结果集进行分组,通常与聚合函数一起使用。

SELECT column1, COUNT(column2), AVG(column3)
FROM table_name
GROUP BY column1;

特点:

  • 用于分组并可以配合聚合函数(COUNT, SUM, AVG 等)

  • 可以进行复杂的数据分析和汇总

  • 可以包含非分组列(在支持的功能中,如 MySQL 的非严格模式)

  • 更灵活,功能更强大

主要区别

特性DISTINCTGROUP BY
目的去重分组+聚合
性能通常更快(简单去重)可能更慢(复杂操作)
聚合函数不能使用可以使用
结果排序不保证顺序分组列通常有序
灵活性有限

何时使用

  • 使用 DISTINCT 当:

    • 只需要简单的去除重复行

    • 不需要任何聚合计算

    • 查询性能是关键因素

  • 使用 GROUP BY 当:

    • 需要进行分组和聚合计算

    • 需要更复杂的数据分析

    • 需要按组计算统计信息

注意

在某些数据库中,对于简单的去重操作,DISTINCT 和 GROUP BY 可能产生相同的执行计划。例如:

SELECT DISTINCT column1 FROM table;
SELECT column1 FROM table GROUP BY column1;

但在大多数情况下,明确使用 DISTINCT 表达去重意图更清晰。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词