赞
踩
count 可以与 distinct 连用,这样可以实现去重计数;加上group by 可实现按某个字段分组,而对其它字段进行去重计数
distinct关键字是用于去除重复的数据记录。distinct使用情况:
当distinct和*号结合使用时候,只有当所有字段都一模一样时候,才会去除重复记录,只保留一条。
当指定列名后,只有指定的列名字段全部值全部相同时候,才会去除重复的记录,只保留一条。
distinct关键字
只能放在所有字段前面,不能在某个字段之后
。
count()是SQL中提供的用于统计记录数量的函数。下面介绍count()函数常见用法:
create table test (
id varchar(15),
a varchar(20),
b varchar(20),
c varchar(20)
)
insert into test values('1', 'a11', 'b11', 'c11');
insert into test values('2', 'a22', 'b22', 'c2');
insert into test values('3', 'a33', 'b33', 'c33');
insert into test values('4', 'a44', 'b44', 'c44');
insert into test values('5', 'a55', 'b55', 'c55');
insert into test values('', 'a55', 'b55', 'b66');
insert into test values(null, 'a11', null, 'c11');
insert into test values(null, null, null, null);
select distinct * from test
由于没有完全相同的记录,所以查询出来的数据还是8条。
select distinct B from test
字段B中存在相同的值,所以distinct会去除重复的记录。
select distinct B, C from test
distinct去重多列时候,只有两条记录所有列的值全部相同才会去重。
select count(*) from test -- 8条记录
select count(1) from test -- 8条记录
select count(id) from test -- 5条记录
由于ID列,有三个为空的值,所以count(ID)后,统计结果等于5。
select count(distinct B) from test -- 5条记录
去重然后统计B字段这一列总记录数。由于B列有两个为空,两条记录重复,所以去重,并且去掉为空的的,最终记录总数为5。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。