如何在同一个数据库表中查询出相同的记录

如何在同一个数据库表中查询出相同的记录,第1张

方法如下:

select from 你的表名

a where id=(select min(id) from 你的表名 whereitem_id=aitem_id)

在查询之前先把数据表中的第一行复制到sid里在去,然后让sid和下面的每一行进行比较

取所有相同的行的最小的一下,也可以取最大的,结果是一样的。

这样让所有的行都比较不就得到不重复的数据了。

使用group进行分组来实现。

例句:

select a,count() from table group a ;

显示的结果,a就是重复的值,count()就是重复的次数。

该SQL在Oracle、Sql Server等数据库都适用。

若要筛选重复几次的重复值,则可对sql进行变动。

比如要显示重复3次以及3次以上的资料,

例句:

select a,count() from table group a having count()>=3;

查看可用如下方法:

1、创建测试表,插入数据:

1

2

3

4

5

6

7

8

9

10

11

12

13

create table product

(id int,

name varchar(10),

totol int)

insert into product values (1,'香蕉',100)

insert into product values (2,'橘子',67)

insert into product values (3,'葡萄',89)

insert into product values (4,'苹果',235)

insert into product values (5,'香蕉',77)

insert into product values (6,'芒果',34)

insert into product values (7,'葡萄',78)

insert into product values (8,'梨',24)

表中数据如:

2、如果查询name列有重复的数据,可执行sql语句:

1

select from product where name in (select name from product group by name having COUNT()>1)

说明:查询的结果就是香蕉和葡萄在表中是有重复的,要把香蕉和葡萄的所有记录都查询出来,结果如图:

select data_guid from adam_entity_datas

where data_guid in (select data_guid from adam_entity_datas

group by data_guid having count() > 1)

首先,先说明一个问题。这样的结果出现,说明系统设计是有问题的。

其次

删除重复数据,你要提供你是什么数据库。

不同数据库会有不同的解决方案。

关键字Distinct

去除重复,如下列SQL,去除Test相同的记录;

1

select

distinct

Test

from

Table

2

如果是要删除表中存在的重复记录,那就逻辑处理,如下:

3

select

Test

from

Table

group

by

Test

having

count(test)>1

4

先查询存在重复的数据,后面根据条件删除

还有一个更简单的方法可以尝试一下:

select

aid,

count(distinct

uid)

from

表名

group

by

aid

这是sqlserver

的写法。

如图一在数据表中有两个膀胱冲洗重复的记录。

2

可以通过sql语句“select

from

表名

where

编码

in(select

编码

from

表名

group

by

编码

having

count(1)

>=

2)”来查询出变种所有重复的记录如图二

3

通过sql语句"

delete

from

表名

where

编码

in(select

编码

from

表名

group

by

编码

having

count(1)

>=

2)

and

编码

not

in

(select

max(编码)from

表名

group

by

编码

having

count(1)

>=2)

"来删除重复的记录只保留编码最大的记录

SELECT 名称,Count() AS Count

FROM 表名

GROUP BY 名称

HAVING Count() >1

这样就列出了所有重复的名称,和重复次数

ORACLE数据库可以使用'||' 连接然后count() group by count()大于1就是重复了

SQL Server里可以使用'+'连接, 然后count() group by count()大于1就是重复了

select A||B||C ,count() from tablename group by A,B,C;

select A+B+C ,count() from tablename group by A,B,C;

以上就是关于如何在同一个数据库表中查询出相同的记录全部的内容,包括:如何在同一个数据库表中查询出相同的记录、如何查询数据库中记录重复的次数、如何查询数据库中有相同字段的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9718979.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存