sqlserver如何统计相同值出现指定次数的结果?

2025-10-14 21:12:50

1、创建一个临时表,用于演示如何筛选出表中指定字段值重复的记录数量

IF OBJECT_ID('tempdb..#tmp1') IS NOT NULL DROP TABLE #tmp1; 

CREATE TABLE #tmp1(

    Col1 varchar(50),        

    Col2 varchar(200),

    Col3 int    

);

sqlserver如何统计相同值出现指定次数的结果?

2、往临时表中插入几行测试数据,其中部分字段的Col2栏位值插入相同值,用于统计筛选相同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', '语文', 97);

insert into #tmp1(Col1, Col2, Col3) values('Code6', '英语', 92);

sqlserver如何统计相同值出现指定次数的结果?

3、查询临时表中的测试数据

select * from #tmp1;

sqlserver如何统计相同值出现指定次数的结果?

4、使用distinct可以筛选出Col2列的不同值的记录

select distinct Col2 

from #tmp1

sqlserver如何统计相同值出现指定次数的结果?

5、使用count(1)加上group by计算出Col2不重复值的记录行数

select Col2, COUNT(1) 

from #tmp1

group by Col2

sqlserver如何统计相同值出现指定次数的结果?

6、使用having过滤出Col2列的行数大于1的值以及行数

select Col2, COUNT(1) 

from #tmp1

group by Col2

having COUNT(1) > 1

sqlserver如何统计相同值出现指定次数的结果?

7、使用having过滤出Col2列的行数大于1的值以及行数,在按照行数倒序排列

select Col2, COUNT(1) 

from #tmp1

group by Col2

having COUNT(1) > 1

order by COUNT(1) desc

sqlserver如何统计相同值出现指定次数的结果?

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢