sqlserver查重复数据
2022-05-18阅读(653)

问:使用sql server 怎么查重复数据
                                            - 答:1、最直观的思路:要知道所有名字有重复人资料,首先必须知道哪个名字重复了:
 select name from emp group by name having count(*)>1
 所有名字重复人的记录是:
 select * from emp
 where name in (select name from emp group by name having count(*)>1)
 2、稍微再聪明一点,就会想到,如果对每个名字都和原表进行比较,大于2个人名字与这条记录相同的就是合格的 ,就有:
 select * from emp
 where (select count(*) from emp e where e.name=emp.name) >1
- 答:SELECT *,
 count(*) C
 FROM 表明
 GROUP BY 字段
 ORDER C DESC
问:怎么查看数据库表中某个字段的值有哪些重复记录
                                            - 答:如果xin表的ID是自增列,则insert
 into
 xin(ENAME,
 SNAME,
 NEWNUM)select
 MIN(ENAME)
 AS
 ENAME,
 SNAME,
 count(*)
 AS
 NEWNUM
 from
 jie
 group
 by
 SNAME只要在asp代码中执行这个sql语句就可以了
- 答:select * from 表 where b in (select b from 表 group by b having count(*)>1)
 以上,希望对你有所帮助!
问:SQL查询,如何去除重复的记录?
                                            - 答:首先,先说明一个问题。这样的结果出现,说明系统设计是有问题的。
 其次
 删除重复数据,你要提供你是什么数据库。
 不同数据库会有不同的解决方案。
- 答:#查询班级中名字不同的所有学生(将名字相同的学生,只取出一个)
 select * from student where sid in (select max(sid) from student group by sname)
 #查询班级中所有名字重复的学生姓名
 select * from student where  sname in (select sname from student group by sname having count(1)>=2 );
- 答:10 SQL查询,如何去除重复的记录?
 现在有一个文章评论系统,每篇文章每个用户只有一条评论有效,多回复不进行统计,比如:评论ID文章AID用户UID120122023301430353016405如果想得到某个文章aid对应有多少条有效评论,sql查询怎么写?请注意,每个AID每个用户重复评论只计算一条有效,比如上面的数据应该是5条有效评论,aid为30的文章有一个用户发了2条评论,去掉一个重复。
 展开
- 答:去除重复记录(两行或两行以上记录中系列的上的数据都相同),例如emp表中sal字段就存在相同的记录。当只查询emp表的sal字段时,那么会出现重复记录,那么想去除重复记录,需要使用DISTINCT:
 SELECT DISTINCT sal FROM emp;
- 答:上面的回答可以,不过我觉得还有更简单的方法:
 select aid, count(distinct uid) from 表名 group by aid
 这是sqlserver 的写法。。。
- 答:select
 aid,
 count(distinct uid)
 from 表名
 group by aid
- 答:select aid, count(*) from (select distinct aid, uid from 表名) group by aid
- 答:select distinct 。。。。。。
 select后加个distinct去掉重复
- 答:关键字Distinct 去除重复,如下列SQL,去除Test相同的记录;
 select distinct Test from Table
 如果是要删除表中存在的重复记录,那就逻辑处理,如下:
 select Test from Table group by Test having count(test)>1
 先查询存在重复的数据,后面根据条件删除
- 答:select * from table a where id in(
 select max(id) from table b
 where a.uid=b.uid and a.aid=b.aid
 group by uid
 )
- 答:select distinct 文章AID,用户UID from table名
问:sql 查询连续相同的数据
                                            - 答:使用group进行分组来实现。例句:selecta,count(*)fromtablegroupa;显示的结果,a就是重复的值,count(*)就是重复的次数。该SQL在Oracle、SqlServer等数据库都适用。若要筛选重复几次的重复值,则可对sql进行变动。比如要显示重复3次以及3次以上的资料,例句:selecta,count(*)fromtablegroupahavingcount(*)>=3;
问:sql查询两个字段相同的记录
                                            - 答:SELECT * FROM table b
 WHERE b.`cronexpression` IN (SELECT a.`cronexpression` FROM `table` a GROUP BY a.`cronexpression`,a.`target_object` HAVING COUNT(*)>1)
 AND b.`target_object` IN (SELECT a.`target_object` FROM `table` a GROUP BY a.`cronexpression`,a.`target_object` HAVING COUNT(*)>1)
- 答:两种方法,一种是查询重复的数据,只查询重复记录,不管其余信息,如ID什么的:
 select uid, time from ztest GROUP BY uid, time having count(*)>1;
 查出结果是
 uid time
 1     1
 还有一种是查询你指定信息,可以查询出ID信息:
 select  distinct a.id, a.uid, a.time from ztest a join ztest b on a.id != b.id where a.uid = b.uid and a.time = b.time;
 查询结果是:
 id uid time
 1   1   1
 3   1   1
- 答:select id from table_name group by uid,time having count(*)>1
 having 类似于where,但是这里不能用where,因为要分组统计以后再加条件 >1 。
- 答:select id from 表名 group by uid,time having count(*)>1