sql求每组成绩前两名来自同一国家的记录(组里只有一个的就不要了)

大神大神,sql求每组成绩前两名来自同一国家的记录(组里只有一个的就不要了),要怎么写呢

用group by就可以实现了。

思路:
先找出同一国家组里多余一条记录的数据,再对这些数据进行降序排序,取前两条记录:
select a.成绩 from
(select 成绩,count(1) from table group by 国家 having count(1)>1 order by 成绩 asc) a limit 2;

参考自:
MySQL如何优化GROUP BY http://www.data.5helpyou.com/article237.html
MySQL如何优化ORDER BY http://www.data.5helpyou.com/article246.html

select * from (SELECT chengji,zu,guojia,rank()over(partiton by chengji,zu,guojia orader by chengji ) as paiming FROM A ) where paiming>1