使用sql server 怎么查重复数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用sql server 怎么查重复数据相关的知识,希望对你有一定的参考价值。

请大家帮忙
我有1000多个数据,怎么使用sql server 语句,写查重。
请帮忙
有如下三个字段;
号段 所辖城市 省直辖市
1300140 保定 河北
1300187 保定 河北
1301140 保定 河北
我怎么查重~~~~~~~~~

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
参考技术A 列出表中某字段有重复的记录,每条记录后面带重复次数。

例如:
id name
--------
1 aaa
2 bbb
3 ccc
4 bbb
5 aaa
6 aaa
7 ccc
8 ddd
9 eee

查询结果应如下:
id name repeat
-----------------
1 aaa 3
5 aaa 3
6 aaa 3
2 bbb 2
4 bbb 2
3 ccc 2
7 ccc 2

第一种解决方案:

SELECT A.id, A.name, B.repeat
FROM Table_1 AS A INNER JOIN
(SELECT name, COUNT(*) AS repeat
FROM Table_1
GROUP BY name) AS B ON A.name = B.name
WHERE (B.repeat > 1)
ORDER BY A.name, A.id

第二种解决方案:

SELECT name, COUNT(*) AS repeat
FROM Table_1
GROUP BY name
HAVING (COUNT(*) > 1)

我觉得你应该把表和字段列出来,这样别人的回答可以更明晰化.

哪几个字段或者哪个字段要查重的?

参考资料:http://hi.baidu.com/kissjava/blog/item/3e637df4f4f28cdbf2d385f6.html

本回答被提问者采纳
参考技术B SELECT *,
count(*) AS CCC
FROM 表明
GROUP BY 字段
ORDER BY CCC DESC

sqlserver 数据有重复怎么删除

参考技术A 1、必须保证表中有主键或者唯一索引,或者某列数据不能重复。只有这样,才可能使用一句SQL来实现。否则只能考虑其它办法。下面的语句,假定BB列是不重复的,删除后保存BB列值最大的那条记录。
delete
from

where
aa
in
(select
aa
from

group
by
aa
having
count(aa)
>
1)
and
bb
not
in
(select
max(bb)
from

group
by
aa
having
count(aa)
>
1);
2、有多种写法:
delete
A
from
B
where
A.AA
=
B.AA
delete
A
from
A,B
where
A.AA
=
B.AA
delete
A
where
AA
in
(select
AA
from
B)
3、使用into关键字:
select
*
into
新表名
from
原表
4、取数据前3位,字段必须是类似char类型,使用类似substring这样的函数(SYBASE是substring,ORACLE是substr):
select
substring(字段,1,3)
from
表名

以上是关于使用sql server 怎么查重复数据的主要内容,如果未能解决你的问题,请参考以下文章

如何使用sql批量生成不重复的有规则数据?

sql去重问题怎样去不掉重复的呢?

怎么用SQL语句查数据库中某一列是不是有重复项

SQL SERVER怎么去掉重复数据?

sqlserver 数据有重复怎么删除

sql怎么查每月数据总数