MySQL 用DISTINCT,GROUP BY 去重的用法和区别
DISTINCT,GROUP BY 都有去重的效果,他们区别在哪呢?
建一个表demo_list
id | name |
1 | alan |
2 | betty |
3 | cat |
4 | dade |
5 | alan |
6 | betty |
现在查出id,name去重
GROUP BY
1 SELECT id
2 FROM demo_list
3 GROUP BY name;
结果:
id |
1 |
2 |
3 |
4 |
DISTINCT
1 SELECT id,COUNT(DISTINCT name)
2 FROM demo_list
3 GROUP BY name;
结果:
id |
COUNT(DISTINCT name)
|
1 | 1 |
2 | 1 |
3 | 1 |
4 | 1 |
两种方法的区别:
group by是按指定的列分组查询的,是一种聚合查询,很多时候是为了做统计用,
distinct 是查询出来以后再把重复的去掉
性能上 group 比 distinct 要好很多