首页 新闻 搜索 专区 学院

请问如何写这样一条SQL语句:如果几条记录的某两个字段相同,则只取一条记录

0
悬赏园豆:100 [已解决问题] 解决于 2011-10-13 11:07

请问如何写这样一条SQL语句:如果几条记录的某两个字段相同,则只取一条记录

问题补充:
A字段   B字段 C字段 D字段
001 0001 1 00001
002 0001 2 00001 

查询的结果是随机得到相同记录中的任意一条

陌生的街角的主页 陌生的街角 | 初学一级 | 园豆:96
提问于:2011-10-13 09:38
< >
分享
最佳答案
3

select * from tablename e where e.rowid  in

(

select min(x.rowid) from tablename x where x.D字段 = e.D字段

)

收获园豆:100
五行缺木 | 菜鸟二级 |园豆:386 | 2011-10-13 10:40

用min的随机性会是一样的么?

陌生的街角 | 园豆:96 (初学一级) | 2011-10-13 10:47

@茄子婕: 会遍历

五行缺木 | 园豆:386 (菜鸟二级) | 2011-10-13 10:55

@五行缺木: 谢谢……搞定!

陌生的街角 | 园豆:96 (初学一级) | 2011-10-13 11:07
其他回答(8)
0

group by

artwl | 园豆:16536 (专家六级) | 2011-10-13 09:39
0
SELECT column_name1,column_name2,
 aggregate_function(column_name)
FROM table_name 
WHERE column_name operator value
GROUP BY column_name1,column_name2
【当耐特】 | 园豆:645 (小虾三级) | 2011-10-13 09:55
1

select distinct [字段1],[字段2]..  from[表名]

hlyue88 | 园豆:174 (初学一级) | 2011-10-13 10:13

用distinct肯定不行……

支持(0) 反对(0) 陌生的街角 | 园豆:96 (初学一级) | 2011-10-13 10:19

@茄子婕: why?

支持(0) 反对(0) hlyue88 | 园豆:174 (初学一级) | 2011-10-13 10:20

@茄子婕: 你的意思是列不固定,然后某两个字段也不固定是吧??

支持(0) 反对(0) 【当耐特】 | 园豆:645 (小虾三级) | 2011-10-13 10:21
0

你说的不够清楚,请把你需要展示出的效果给个图什么的

 

A字段   B字段 C字段 D字段
001 0001 1 00001
002 0001 2 00001 

 

你是要查询出来是什么样子

花祭果凛 | 园豆:310 (菜鸟二级) | 2011-10-13 10:23
2

1.select * from tab group by ‘你想用的字段’ having count(0)>1  --得到重复记录

 

2. select *,ROW_NUMBER() over(partition by '你想用的字段' order by (select 0)) as rn

from t1  --此时rn>1的就是重复的

哇~怪兽 | 园豆:610 (小虾三级) | 2011-10-13 10:38
0
SELECT     A, B, C, D
FROM Table1
WHERE (A IN
(SELECT MIN(A)
FROM Table1
GROUP BY B, D))
LCM | 园豆:6876 (大侠五级) | 2011-10-13 10:40
0

select * from tablename e where e.rowid  in

(

select min(x.rowid) from tablename x where x.D字段 = e.D字段

)

这条语句的匹配机制是什么?

彬彬@科比 | 园豆:43 (初学一级) | 2012-05-31 16:49
0

请问如果是两个字段唯一的多条记录相同,怎样支取一条记录呢?

微微一笑smiler | 园豆:202 (菜鸟二级) | 2012-12-12 09:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册