ZBLOG

mysql DISTINCT和GROUP BY区别

MySQL中的DISTINCT和GROUP BY都是用来去除重复数据的,但它们之间有一些区别。

  • DISTINCT用于返回不同的值,而GROUP BY则用于将数据分组并对每个组执行聚合函数操作。
  • GROUP BY可以将查询结果按照指定列进行分组,同时也可以对每个组执行聚合函数操作,例如SUM、AVG等。而DISTINCT只能简单地过滤掉重复的行。
  • 使用GROUP BY时,SELECT子句中必须包含至少一个聚合函数或者每个非聚合列都必须出现在GROUP BY子句中。而使用DISTINCT时,则不需要这样做。
  • 在性能方面,通常情况下使用DISTINCT比使用GROUP BY要快一些。

举例说明:

假设我们有以下表格:

+----+---------+--------+
| id | name    | score  |
+----+---------+--------+
| 1  | Alice   | 90     |
| 2  | Bob     | 85     |
| 3  | Charlie | 80     |
| 4  | David   | 85     |
| 5  | Emma    | 90     |
+----+---------+--------+

如果我们想要得到不同的成绩,则可以使用DISTINCT关键字:

SELECT DISTINCT score FROM table_name;
-- 结果:90,85,80

如果我们想要根据成绩进行分组,并计算每个分数段内的平均分数,则可以使用GROUP BY关键字:

SELECT score, AVG(score) FROM table_name GROUP BY score;
-- 结果:
-- 80  | 80.0000
-- 85  | 85.0000
-- 90  | 90.0000

总之,DISTINCT用于简单地去重,而GROUP BY则更适合进行分组和聚合操作。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=5437

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?