sqlserver如何统计相同值出现指定次数的结果?
来源:网络收集 点击: 时间:2024-05-19创建一个临时表,用于演示如何筛选出表中指定字段值重复的记录数量
IF OBJECT_ID(tempdb..#tmp1) IS NOT NULL DROP TABLE #tmp1;
CREATE TABLE #tmp1(
Col1 varchar(50),
Col2 varchar(200),
Col3 int
);

往临时表中插入几行测试数据,其中部分字段的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);

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

使用distinct可以筛选出Col2列的不同值的记录
select distinct Col2
from #tmp1

使用count(1)加上group by计算出Col2不重复值的记录行数
select Col2, COUNT(1)
from #tmp1
group by Col2

使用having过滤出Col2列的行数大于1的值以及行数
select Col2, COUNT(1)
from #tmp1
group by Col2
having COUNT(1) 1

使用having过滤出Col2列的行数大于1的值以及行数,在按照行数倒序排列
select Col2, COUNT(1)
from #tmp1
group by Col2
having COUNT(1) 1
order by COUNT(1) desc

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