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