sqlserver查重复数据

sqlserver查重复数据

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

猜你喜欢