怎么查看数据库表中某个字段的值有哪些重复记录

如题:
表A中包含a b c 三个字段,共有10行记录,怎么查询10行记录中字段b的值是否有重复。 重复的记录分别是哪几行?

下面以 sqlserver数据库为例进行说明。

select * from TableA where b in (select  b from  TableA group  by  b having  count(b) > 1)

这样就列举出了b字段所有的重复数据,可以根据对应的行号,取得位于第几行。

如果要查询a字段或者c字段重复数据,可以相应的把上面的b字段替换成a字段或c字段即可。

举例:

1、创建表student

2、查询语句: select * from student where name in (select  name from  student group  by  name   having  count(name ) > 1)

这样就查出名字重复列,以及行号id。

扩展资料:

1. sqlserver其他相关的一些查询:

(1)删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录

delete from people where peopleId in 

(select   peopleId from people group by   peopleId   having count(peopleId) > 1) and 

rowid not in (select min(rowid) from   people group by peopleId having count(peopleId)>1)

(2)查找表中多余的重复记录(多个字段) 

select * from vitae a where (a.peopleId,a.seq) in  

(select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)

(3)查找表中多余的重复记录(多个字段),不包含rowid最小的记录

select * from vitae a where (a.peopleId,a.seq)  in  

(select peopleId,seq from vitae group by peopleId,seq havingcount(*) > 1) and 

rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)

2. SQL语言元素

1、子句,是语句和查询的组成部分。

2、表达式,可以生成标量值,也可以生成由列和行数据组成的表。

3、谓词,指定可以评估为SQL三值逻辑(3VL)(真/假/未知)或布尔真值的条件,用于限制语句和查询的效果,或用于更改程序流。

4、查询,根据特定条件检索数据。这是SQL的一个重要元素。

语句可能对架构和数据产生持久影响,或者可能控制事务,程序流,连接,会话或诊断。

SQL语句还包括分号(“;”)语句终止符。虽然并非每个平台都需要,但它被定义为SQL语法的标准部分。在SQL语句和查询中通常会忽略无关紧要的空格,从而可以更轻松地格式化SQL代码以提高可读性。

参考资料:百度百科-SQL语法



温馨提示:内容为网友见解,仅供参考
第1个回答  2015-09-01

查看可用如下方法:

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

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语句:

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

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

第2个回答  2019-06-04
如果xin表的ID是自增列,则insert
into
xin(ENAME,
SNAME,
NEWNUM)select
MIN(ENAME)
AS
ENAME,
SNAME,
count(*)
AS
NEWNUM
from
jie
group
by
SNAME只要在asp代码中执行这个sql语句就可以了
第3个回答  2009-08-26
select * from 表 where b in (select b from 表 group by b having count(*)>1)

以上,希望对你有所帮助!本回答被提问者采纳

怎么查看数据库表中某个字段的值有哪些重复记录
如果要查询a字段或者c字段重复数据,可以相应的把上面的b字段替换成a字段或c字段即可。举例:1、创建表student 2、查询语句: select * from student where name in (select name from student group by name having count(name ) > 1)这样就查出名字重复列,以及行号id。

sql查找某一字段相同的所有数据
1、在我们的电脑上打开数据库,这里新建一张含有重复数据的user表做示例。2、我们输入“select * from user where name in (select name from user group by name having count(name) > 1) ”sql语句,点击运行可以看到查询出了数据库中user表的重复数据。3、通过“delete from user where name...

用sql语句统计数据库某个字段中相同的数据有多少条?
1、要统计数据库中某个字段中相同数据的条数,可以使用SQL的分组和聚合功能。具体的SQL语句如下:```sql SELECT a, COUNT(*)FROM A GROUP BY a;```这里,字段a被视为分组依据,相同值的a会被分到同一组中,COUNT(*)函数则用于计算每组中的记录数。2、在SQL查询中,使用`GROUP BY`语句可以对...

如何查找数据库中的重复数据
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from peoplewhere peopleId in (select peopleId from people group by peopleId having count (peopleId) > 1)2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录...

如何确定Oracle数据库表中重复的记录
一、自关联查询方法 Oracle系统中,对于所有的表都存在一个唯一的列,这就是rowid。对该列使用最大(max)或者最小(min)函数可以非常容易地确定重复的行。二、GROUPBY\/HAVING查询方法 利用分组函数GROUPBY\/HAVING也很容易确定重复的行。以需要创建唯一索引的列分组并统计每组的个数,很明显如果组中记录数...

怎么利用SQL语句查询数据库中具体某个字段的重复行
1、创建表插入数据:create table test(id int,name varchar(10))insert into test values (1,'张三')insert into test values (2,'李四')insert into test values (3,'张三')insert into test values (4,'王五')insert into test values (5,'赵六')其中name是张三的有两行,也就是重复行...

查询数据库中某一字段中的值全部相同的数据
REPLICATE( LEFT(TEL, 1), LEN(TEL)) 是重复 TEL 的左边的第一个字母. 长度为TEL 字符串的长度.REPLICATE( LEFT(TEL, 1), LEN(TEL)) = TEL 就是用第一个字符,重复了 TEL 的长度以后, 和 TEL 一样, 说明这个 TEL 全部只使用了一个字符。SQL Server 2008 Express 下测试通过。

用sql语句统计数据库某个字段中相同的数据有多少条?
分组操作是关键,它将数据集根据指定的字段(如a)进行划分,确保每个组内数据具有相同的值。而 COUNT(*) 函数的作用就是计算每个组中的记录总数,无论该字段值是否为NULL。对于效率问题,一般情况下,SELECT COUNT(*) 和 SELECT COUNT(1) 会得到相同的结果。如果没有表的主键,COUNT(1) 会更快。

查询SQL数据库中其中一个字段有重复记录,在根据重复记录返回另一...
一般是这样操作的 查询重复NAME:select NAME from 表A group by NAME having conunt(NAME) > 1 查询有重复NAME的信息信息 select NAME,UID from 表A where NAME in (select NAME from 表A group by NAME having conunt(NAME) > 1 )order by NAME ...

在oracle中怎么查一个表中的的一个字段的重复数据
delete from 表名 a where 字段1,字段2 in(select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1)上面的SQL注意:语句非常简单,就是将查询到的数据删除掉。不过这种删除执行的效率非常低,对于大数据量来说,可能会将数据库吊死。建议先将查询到的重复的数据插入...

相似回答