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' 这是不会分区(分组):

 

posted @ 2020-09-11 20:26  shan_zhayidian  阅读(17845)  评论(0编辑  收藏  举报