sqlserver如何统计记录行数,与不重复的行数?
来源:网络收集 点击: 时间:2024-05-15创建一个临时表,用于演示sqlserver统计记录行数count及其子语句的使用方式
IF OBJECT_ID(tempdb..#tmp1) IS NOT NULL DROP TABLE #tmp1;
CREATE TABLE #tmp1(
Col1 varchar(50),
Col2 varchar(200),
Col3 int
);

往临时表中插入几行测试数据,其中部分字段的Col2栏位值插入相同值
insert into #tmp1(Col1, Col2, Col3) values(Code1, 张三, 95);
insert into #tmp1(Col1, Col2, Col3) values(Code2, 李四, 96);
insert into #tmp1(Col1, Col2, Col3) values(Code3, 王五, 92);
insert into #tmp1(Col1, Col2, Col3) values(Code4, 张麻子, 98);
insert into #tmp1(Col1, Col2, Col3) values(Code5, 李四, 93);

查询临时表中的测试数据
select * from #tmp1;

使用count(*)统计出临时表的记录行数,这是很长见的统计行数使用方式
select COUNT(*) from #tmp1

使用count(1)统计出临时表的记录行数,这里仅仅使用1替换掉了星号,据说这样效率更高
select COUNT(1) from #tmp1

使用count子语句,统计Col2列不相同值的行数,如果将distinct放到count外面,从结果可以看出,并没有达到预期的效果
select distinct COUNT(Col2) from #tmp1

使用count子语句,统计Col2列不相同值的行数,这个时候就需要将distinct放到count里面去
select COUNT(distinct Col2) from #tmp1

版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_768208.html