mySql 实现排序函数row_number() over(partition by )

来源:互联网 发布:安卓免费游戏源码 编辑:程序博客网 时间:2024/05/13 02:08

对b_id进行分组,并取每组的前两条结果,@rownum是申明局部变量rownum ,   :=是赋值符号,if(exp1,exp2,exp3)exp1为true,则返回exp2,否则返回exp3



select b_id,b_name,rank from (  

select b.b_id,b.b_name,@rownum:=@rownum+1 ,  
if(@id=b.b_id,@rank:=@rank+1,@rank:=1) as rank,  
@id:=b.b_id
from (  
select b_id,b_name from cky_book order by b_id   
) b ,(select @rownum :=0 , @id := null ,@rank:=0) c ) result  
having rank <3 ;  
0 0
原创粉丝点击