首页 新闻 赞助 找找看

谁能帮写个sql查询,去重复的(二)。

0
悬赏园豆:20 [已解决问题] 解决于 2014-07-14 11:28

姓名    性别    出现次数    该名字性别的最大ID
1111    1    3    115688    
1111    2    1    76183    
追梦人    1    13    12094    
追梦人    2    5    30842    
仔仔    1    9    10902    
仔仔    2    2    138823    
子非鱼    1    5    12171    
子非鱼    2    5    6573    
子涵    1    1    49227    
子涵    2    10    6597

 

续前面的问题 http://q.cnblogs.com/q/63682/查出性别出现次数多的ID,出现次数相等的随机取个就行。大家帮忙吧

 

结果要

115688

12094

10902

12171

6597

sql
前端的主页 前端 | 初学一级 | 园豆:132
提问于:2014-07-12 10:56
< >
分享
最佳答案
0

select 该名字性别的最大ID from(select *,row_number() over(partition by 姓名 order by 出现次数 desc) as rId from tble) a where rId=1

收获园豆:20
会飞的金鱼 | 小虾三级 |园豆:881 | 2014-07-12 12:40

access 用不了partition by

前端 | 园豆:132 (初学一级) | 2014-07-12 15:24

@前端: 試一下這條sql

select 该名字性别的最大ID from tbl a,(select 姓名,max(出现次数) from tbl group by 姓名) b where a.姓名=b.姓名 and a.出现次数=b.出现次数

会飞的金鱼 | 园豆:881 (小虾三级) | 2014-07-12 15:44

...a,(select 姓名,max(出现次数) from tbl...

...a,(select 姓名,max(出现次数) as 出现次数 from tbl...

查询成功!小问题是“出现次数”相等的话,多出了行结果.

前端 | 园豆:132 (初学一级) | 2014-07-12 17:13

@前端: 我也發現這個問題。

可以試一下這條sql

select a.该名字性别的最大ID from tbl a where a.该名字性别的最大ID=(select top 1 b.该名字性别的最大ID from tbl b where b.姓名=a.姓名 order by b.出现次数,b.性別 desc) and a.b.性別=(select top 1 b.性別 from tbl b where b.姓名=a.姓名 order by b.出现次数,b.性別 desc)

 

 

会飞的金鱼 | 园豆:881 (小虾三级) | 2014-07-12 18:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册