分组后在分组内排序每个分组中取前N条

Posted

tags:

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

SELECT p_type,p_name,p_view,row_num from (

SELECT p_type,p_name,p_view,IF(@bak=p_type,@rownum:[email protected]+1,@rownum:=1) as row_num, @bak:=p_type

FROM

( SELECT p_type,p_name,p_view from products 

order by p_type,p_view desc ) a , ( SELECT @rownum:=0,@bak:=‘‘) b 

) c WHERE c.row_num <=2


IF函数

IF(条件,表达式1,表达式2)

 如果条件成立 则返回表达式1,否则是2


以上是关于分组后在分组内排序每个分组中取前N条的主要内容,如果未能解决你的问题,请参考以下文章

SQL如何对分组后的结果进行排序并且取前几名

Mysql 分组并排序

mySQL分组排序

MySQL分组、排序

sql取出每个分组的前几条

SQL 分组统计并排序