Mysql 去重

数据基础 159 浏览

MYSQL查询去重我们有两种方法:

1. MYSQL distinct 关键字去重查询。

select * from it_user;

id      name          sex
1	zhangsan        1
2	zhangsan        2
3	zhangsan        1
4	zhangsan        1
5	lisi            2
6	wangwu          1

如果我们根据name去重:

select distinct name from user;

name
zhangsan
lisi
wangwu

这时我们获取到去重后的名字。但是如果我们想“根据name去重后,并获取name,sex字段”,我们自然这么想:

select distinct name,sex from user;

name          sex
zhangsan        1
zhangsan        2
lisi            2
wangwu	        1

结果,mysql会根据name和sex一起作为去重条件。所以,在某些情况下 distinct 并不适合查看不重复的记录,但是统计不重复记录条数是可以的。

注意:distinct 必须紧接着 select。

2. MYSQL group by 关键字分组查询。

select id,name,sex from user group by name;

id      name          sex
1	zhangsan        1
5	lisi            2
6	wangwu	        1

根据name分组查询,可以查询不重复记录。

我们还可以统计每组记录的条数:

select id,name,sex,count(0) as count from user group by name;

id      name        sex     count
1	zhangsan        1       4
5	lisi            2       1
6	wangwu          1       1

这样我们用name进行了分组,并且还统计出了每组的条数。当然,我们也能根据name和sex一起分组:

select id,name,sex,count(0) as count from it_user group by name,sex;

id      name        sex     count
1	zhangsan        1       3
2	zhangsan        2       1
5	lisi            2       1
6	wangwu          1       1
|  版权声明:本文为博主原创文章,转载请注明出处。