mysql每组前N条

Posted 八稚女

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql每组前N条相关的知识,希望对你有一定的参考价值。

SELECT * from (
select
  case when t.province=@prov then @rownum:=@rownum+1
  else @rownum:=1 end rownum,
  case when t.province=@prov then 0
  else @prov:=t.province end prov,

  t.*
from
  (

    SELECT 110000 province,1231 money
    UNION all
    SELECT 110000 province,123121 money
    UNION all
    SELECT 110000 province,1231231 money
    UNION all
    SELECT 120000 province,121231 money
    UNION all
    SELECT 120000 province,123121 money
    UNION all
    SELECT 130000 province,12131 money
    UNION all
    SELECT 130000 province,12231 money
    UNION all
    SELECT 140000 province,123311 money

  ) t,(select @rownum:=0) rn,(select @prov:=‘‘) prov
ORDER BY t.province,t.money desc
) tt
where tt.rownum<=2
;

 

以上是关于mysql每组前N条的主要内容,如果未能解决你的问题,请参考以下文章

优化获取每组前 n 条记录的方法

SQL分组取每组前一(或几)条记录(排名)

MySQL取每组的前N条记录

mysql分组后,取每组的前3条数据(并且有顺序)

无法在 sparksql 中选择每组前 10 条记录

SQL分组查询每组前几条数据