sql server 重复记录相关 SQL
1.如何用SQL语句把一个表里面某字段内有相同的记录查询出来
select name from tb group by name having count(*) > 1
显示所有数据
select * from name in (select name from tb group by name having count(*) > 1)
Sql Server里面如果没有设定主键而删除重复数据很麻烦:
一:保留重复记录中的一条记录,其他全部删除。
1:建立临时表,把不重复的数据转存
select distinct * into #Tmp from 表名;
2:删除原表数据
truncate table 表名;
3:将数据导回
insert into 表名 select * from #Tmp;
4:删除临时表
drop table #Tmp;
依据 field2 排序,且field2 是重复记录的个数,即按重复记录的多少从大到小排序。
SELECT top 3 field1,count(*) as field2 from tb where id = 123 GROUP BY field1 having count(*) > 0 ORDER BY field2 DESC