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 ;
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 ;
相关文章推荐
- MYSQL-实现ORACLE- row_number() over(partition by ) 分组排序功能优化
- MYSQL-实现ORACLE- row_number() over(partition by ) 分组排序功能
- MYSQL-实现row_number() over(partition by ) 分组排序功能
- MYSQL-实现ORACLE- row_number() over(partition by ) 分组排序功能优化
- MYSQL-实现ORACLE- row_number() over(partition by ) 分组排序功能
- MYSQL-实现ORACLE 和SQLserver数据中- row_number() over(partition by ) 分组排序功能
- MySql ..IF.. 实现row_number() over(partition by ) 分组排序功能
- MYSQL-实现ORACLE- row_number() over(partition by ) 分组排序功能
- MYSQL-实现ORACLE- row_number() over(partition by ) 分组排序功能
- mysql: 实现row_number() over (partition by) 分组排序
- mysql 实现row_number() over(partition by ) 分组排序功能
- MYSQL-实现分组排序 对比 ORACLE 和SQLserver用 row_number() over(partition by ) 分组排序功能
- MYSQL-实现ORACLE- row_number() over(partition by ) 分组排序功能.
- Oracle 分析函数row_number() over (partition by order by ) 的 Mysql的替代方法
- mysql实现ROW_NUMBER() over (PARTITION BY xx ORDER BY ** DESC)
- Mysql实现ROW_NUMBER() over(PARTITION BY column1 order by column2)
- MySQL实现Oracle的row_number()over(partition by)
- MySQL实现ORALCE的row_number()over(partition by xx)功能
- mysql 实现oracle里面row_number() OVER (PARTITION BY cid,author ORDER BY id DESC) 的方法
- row_number() OVER(PARTITION BY)函数介绍