sqlserver查重复数据
2022-05-18阅读(653)
![sqlserver查重复数据](https://www.lunwen90.cn/thumb/c87d0864925eb46363394ce8.webp)
问:使用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