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

 时间:2026-02-11 20:48:06

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如何统计相同值出现指定次数的结果?

  • sql语句怎么查出所有数组中的值呢
  • TortoiseSVN使用第三方工具对比文件
  • 谷歌浏览器如何打开拼写检查?
  • 电脑怎么设置搜索权限和历史记录
  • sqlserver数据库表导出成excel文件(sql语句版)
  • 热门搜索
    国外旅游哪里最便宜 3月份去哪旅游好 泰国旅游景点图片 肇庆有什么旅游景点 西部大峡谷旅游攻略 泰国旅游购物 大理古城旅游攻略 新西兰旅游地图 苏州旅游景点推荐 云南旅游攻略自助游