mysql:distinct, group by 去重用法和区别

in 编程
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9

问题描述

查询数据经常需要对数据表的某一属性进行去重操作,group by 和 distinct 都有去重功能,但是有区别。

1.数据去重样例

样例数据表 quancheng_test

id name
1 a
2 b
3 c
4 d
5 a
6 b

功能需求:按 name 进行去重,把 id 查出来。 方案1:

select id from quancheng_test group by name;

结果1:

id
1
2
3
4

方案2:

select id, count(distinct name) from quancheng_test group by name;

结果2:

id count(distinct name)
1 1
2 1
3 1
4 1
2.两种去重方案的区别

group 是按组查询的,是一种聚合查询,很多时候是为了做统计用,例如: 对 name 分组,并统计每组 id 的和,

select sum(id), name from quancheng_test group by name;

查询结果为:

sum(id) name
6 a
8 b
3 c
4 d

distinct 是查询出来以后再把重复的去掉 性能上 group 比 distinct 要好很多

关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9
扫一扫关注公众号添加购物返利助手,领红包
Comments are closed.

推荐使用阿里云服务器

超多优惠券

服务器最低一折,一年不到100!

朕已阅去看看