姓名 性别 出现次数 该名字性别的最大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
select 该名字性别的最大ID from(select *,row_number() over(partition by 姓名 order by 出现次数 desc) as rId from tble) a where rId=1
access 用不了partition by
@前端: 試一下這條sql
select 该名字性别的最大ID from tbl a,(select 姓名,max(出现次数) from tbl group by 姓名) b where a.姓名=b.姓名 and a.出现次数=b.出现次数
...a,(select 姓名,max(出现次数) from tbl...
...a,(select 姓名,max(出现次数) as 出现次数 from tbl...
查询成功!小问题是“出现次数”相等的话,多出了行结果.
@前端: 我也發現這個問題。
可以試一下這條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)