mysql中使用row_number()函数
1 select 2 id,dynastyid,name,miaohao, 3 ROW_NUMBER() over(PARTITION by dynastyid ) rn 4 from 5 a_king
这里使用partition by fieldname 来进行分组,fieldname相同的会进行顺序编号,fieldname不同会重新进行编号。
然后通过子查询来进行一次筛选,选出每组的(这里是以dynastyid来分组)前几名或后几名:
1 select * from (select 2 id,dynastyid,name,miaohao, 3 ROW_NUMBER() over(order by dynastyid ) rn 4 from 5 a_king)
还可以使用order by 'fieldname' 这是不会分区(分组):