1.如何用SQL语句把一个表里面某字段内有相同的记录查询出来
现在有一个表 有三列 分别是tel,name,addr
我现在要查询name一样的
具体T-SQL语句要怎么写 求助
就是name这个列有很多记录在数据库里面 这些人有很多哈 就是如何把这些同名同姓的记录找出来
只显示name
select name from tb group by name having count(*) > 1
显示所有数据
select * from name in (select name from tb group by name having count(*) > 1)
2.T1表有F1,F2,F3字段 T2表有F1,F4字段 查出T1表里所有有重复的记录,如下
select * from T1 where F1 in(select F1 from T1 group by F1,F2,F3 having count(*)>1)
3.怎样用SQL语句在一个表里找出具有两个相同属性的记录?
悬赏分:5 - 解决时间:2008-12-15 17:11
比如说这个表里有属性:姓名,学号,专业,籍贯等。那我现在要找出专业和籍贯都相同的学生记录。如何用SQL语句实现?
假设相同的专业名为A,籍贯名为B,表名为TAB
问题补充:不好意思,忘了说一个条件。
就是事先不知道有哪些记录里的专业和籍贯是相同的,A和B是未知的,即有可能A和B有多种取值情况,而现在要全部把它们查找出来。
不是专业=籍贯,而是不同的记录中专业相同AND籍贯相同的,比如说专业都是计算机的,籍贯都是福建福州的;或者专业都是数学的,籍贯都是福建厦门的。
答案:
select 专业,籍贯 , count(*) from tab
group by 专业,籍贯
是专业,籍贯相同的学生记录数
select 专业,籍贯 , count(*) from tab
group by 专业,籍贯 having count(*)>1
是专业,籍贯相同的学生记录数>1条的
select 姓名,学号 , 专业,籍贯 from tab
order by 专业,籍贯
就是明细
若你想查某个专业 如 A 和籍贯 如 B的话,
select * from TAB where 专业='A'and 籍贯='B'
例如有如下表结构和值
table
fid name sex
1 a 男
2 b 男
3 c 女
4 d 女
5 a 男
6 b 男
方案一:distinct
select distinct name from table
得到结果:
name
a
b
c
d
实现效果,那如果要同时打开其它记录呢?再试试
select distinct name,id from table
测试没什么效果,查下得知,这样实际是要name和id字段都重复才被筛选。继续查找可得如下方法:
方案二:group by
select *, count(distinct name) from table group by name
Oracle下测试失败,据说MYSQL下通过,不管,继续思考....
select *, count(distinct name) from table group by name 在MYSQL测试失败
翻翻书,试试
select min(fid),name,sex from table group by name
成功,现实如下结果:
fid name sex
1 a 男
2 b 男
3 c 女
4 d 女
MYSQL测试,没有效果
继续思考,如果要打开所有记录,不指定字段用(*),貌似这方法就不行了!
select * from table where fid in(Select min(fid) FROM table group by name)
测试成功
fid name sex
1 a 男
2 b 男
3 c 女
4 d 女
方案三:
本来已经完了,突然想起前几天在网上查了查询数据中所有某字段重复的记录
select * from table where name in(select name
from table group by name having count(name)=2)
得到如下结果:
fid name sex
1 a 男
2 b 男
5 a 男
6 b 男
以此类推:
select * from table where name in(select name
from table group by name having count(name)=1)
按道理说没问题,大家试试~~
再多的字段都全部现实。哎,原来如此简单!回顾网上方法distinct,Inner Join等等,麻烦,而且有很大局限性.
总结如下:
select distinct name from table打开重复记录的单个字段
select * from table where fid in(Select min(fid) FROM table group by name)打开重复记录的所有字段值
select * from table where name in(select name
from table group by name having
count(name)=1)打开重复任意次数的所有记录
4.
Sql Server里面如果没有设定主键而删除重复数据很麻烦:
一:保留重复记录中的一条记录,其他全部删除。
--1:建立临时表,把不重复的数据转存
select distinct * into #Tmp from 表名;
--2:删除原表数据
truncate table 表名;
--3:将数据导回
insert into 表名 select * from #Tmp;
--4:删除临时表
drop table #Tmp;
******************
如果是oracle的话,把 rowid 查出来,按照rowid删除就可以了。
select rowid,表名.* from 表名;
delete from 表名 where rowid != '刚才查询出的某个值'
commit;
******************
select post_content,post_title from wp_posts group by post_content,post_title having count(*)>1
先看看有多少重复的
假设你表中还有id的一个字段
select min(id),post_content,post_title from wp_posts group by post_content,post_title
这些选出来后你看看这些是否可以不删除
然后
delete from wp_posts where id not in (select min(id) from wp_posts group by post_content,post_title)
分享到:
相关推荐
根据提供的标题、描述以及部分代码内容,我们可以整理出关于如何使用SQL语句查询及处理重复记录的相关知识点。本文将详细阐述这些知识点,并提供具体的SQL语句示例。 ### SQL语句查询所有重复记录 #### 1. 查询...
- 当只需要知道是否存在重复数据而不需要具体的重复记录时,可以使用`COUNT(DISTINCT column_name)`。 - 示例:`SELECT COUNT(DISTINCT id) FROM a;` ### 总结 本文详细介绍了如何使用SQL查询表中的重复数据,...
当我们想找出基于单一字段(如 `Id`)的重复记录时,可以使用如下的 SQL 语句: ```sql select * from 表 where Id in (select Id from 表 group by Id having count(Id) > 1) ``` 这个查询会返回所有在 `Id` ...
SQL语句去掉重复记录,获取重复...本文介绍了如何使用SQL语句去掉重复记录、获取重复记录,并且提供了SQL Server和Access中查询所有表名和字段名的方法。这些技术可以帮助开发者和数据库管理员更好地管理和维护数据库。
以上SQL语句能够帮助我们删除除了具有最小ROWID之外的所有重复记录。 3. **查找表中多余的重复记录(不含最小ROWID)** ```sql SELECT * FROM vita_ea WHERE (a.peopleId, a.seq) IN ( SELECT peopleId, seq ...
### 四种SQL语句删除重复记录的方法 在数据库管理中,经常会出现数据冗余的情况,特别是当数据量庞大时,这种现象更为普遍。对于重复记录的处理是维护数据库完整性和提高查询效率的重要手段之一。本文将详细介绍四...
SQL语句删除重复记录 在数据库管理中,删除重复记录是一个非常重要的操作。重复记录可能来自于数据导入、系统错误或者其他原因。今天,我们将探讨如何使用 SQL 语句删除重复记录。下面将介绍四种不同的方法来删除...
如果想查找表中多余的重复记录,且重复记录是根据多个字段来判断,并且不包含 rowid 最小的记录,可以使用以下 SQL 语句: ```sql SELECT * FROM vitae a WHERE (a.peopleId, a.seq) IN (SELECT peopleId, seq ...
这条SQL语句用于查找`people`表中`peopleId`字段存在重复的所有记录。通过`GROUP BY`子句对`peopleId`进行分组,然后利用`HAVING COUNT(peopleId) > 1`条件筛选出那些计数大于1的分组,即`peopleId`重复的记录。 ##...
- **FULL JOIN (或 FULL OUTER JOIN)**:返回两个表中的所有行,如果某条记录在其中一个表中不存在,则用NULL填充。 4. **子查询** - 子查询可以在主查询中嵌套,用于执行独立的查询并返回结果供外部查询使用。 ...
- `DISTINCT`关键字用于去除重复记录,确保结果集中的唯一性,适用于需要排除重复数据的情况,如查询拥有最小80GB硬盘的便携式电脑的厂商。 **3. 条件筛选与逻辑运算** - 使用`WHERE`子句可以添加查询条件,对...
这条命令返回`department_id`小于10或大于20的所有部门信息,且结果集中不会出现重复记录。 #### 四、总结 本文详细介绍了SQL查询语句的基础用法及高级技巧,包括基本查询语句、条件过滤、使用别名、多表联接、...
这段SQL语句的主要作用是从`CUSTOM_INFO`表中删除重复记录,保留每组中`rowid`最大的一条记录。具体步骤如下: 1. **子查询**:`(SELECT MAX(rowid) FROM CUSTOM_INFO b WHERE a.sampleid = b.sampleid)`用来找出与...
本资料"SQL常用查询语句大全"是一份非常适合初学者的教程,它涵盖了SQL语言的基本概念和常用操作。 首先,我们要理解SQL的四大基本操作:SELECT(选择)、INSERT(插入)、UPDATE(更新)和DELETE(删除)。这些...
- **UNION**:用于合并两个或多个SELECT语句的结果集,并去除重复的记录。 - **EXCEPT**:用于获取第一个SELECT语句结果集中存在而第二个SELECT语句结果集中不存在的记录。 - **INTERSECT**:用于获取两个SELECT语句...
- 返回`testtable`表中不重复的`email`地址: ```sql SELECT DISTINCT email FROM testtable; ``` **6. 限制结果集:** - **语法格式:** `SELECT TOP n [PERCENT] * FROM table_name;` - **示例:** - 返回...
以下是如何使用SQL语句来删除数据表中重复记录的详细步骤。 首先,我们来看一个简单的例子,假设我们有一个名为`Repeat`的数据表,其中存在重复的记录。要删除这些重复的记录,但保留每个唯一组合的最新(最大`id`...
sql 查出一张表中重复的所有记录数据 1.表中有id和name 两个字段,查询出name重复的所有数据 select * from xi a where (a.username) in (select username from xi group by username having count(*) > 1) 2、...