您的位置:首页 > 数据库 > MySQL

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

2016-08-22 22:54 696 查看
对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 ;  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: