SQL如何获取不重复的数据,去重后的数据行数?
来源:网络收集 点击: 时间:2024-06-02创建一个临时表,用于演示sqlserver语法中的去重关键字distinct的使用。本文以sqlserver数据库为例演示
IF OBJECT_ID(tempdb..#tmp1) IS NOT NULL DROP TABLE #tmp1;
CREATE TABLE #tmp1(
Col1 varchar(50),
Col2 int
);

往临时表中插入几行测试数陕凤英据,用于演示distinct的使用
insert into #tmp1(Col1, Col2) values(Code10, 10);
insert into #tmp1(Col1, Col2) values(Code20, 20);
insert into #tmp1(Col1, Col2) values(Code10, 10);
insert into #tmp1(Col1, Col2) values(Code5, 20);

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

使用distinct查询出整个表所有字段值不重复的记录
select distinct * from #tmp1

distinct除了过滤整个表不重复的记录之外,还可以对指陵泉定列去重复,多个列使用逗号分开即可
select distinct Col1 from #tmp1;
select distinct Col1, Col2 from #tmp1;

如果想返回临时表中Col1列不重复的记录行数,该如何书写sql语句呢?使用下面的sql,从运行结果来看,并没有达到预期的效果
select distinct count(Col1) from #tmp1;

试着把distinct和count交换一个戴仗位置,sql语句执行会怎么样呢?从运行结果可以看出,这样写就可以达到预期的效果,Col1列的不重复行数正确的返回了
select count(distinct Col1) from #tmp1;

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