mysql 做出开窗函数的效果row number() OVER(PARTITION BY)
2016-11-04 15:06
756 查看
今天朋友发来一段Oracle的代码,要求改成mysql。代码里面有row number() OVER(PARTITION BY)和DECODE这些不通用的函数。
decode是翻译函数,这个用case when 很好解决,开窗函数就有点麻烦了。
源代码:select t.*, ROW_NUMBER() OVER( PARTITION BY t.ticket_type ORDER BY t.open_ticket_time DESC ) as rn
from
term t
where
t.ticket_type in(
6, 5, 0, 1, **, *, **, **, *2, 2, 3, 4, 8, 7
)
and t.term_status >= 5
这个代码的意思是根据open_ticket_time倒序的顺序将ticket_type 是( 6, 5, 0, 1, **, *, **, **, *2, 2, 3, 4, 8, 7)还有term_status >= 5的数据对ticket_type 进行分组后排名ROW_NUMBER() 。
decode是翻译函数,这个用case when 很好解决,开窗函数就有点麻烦了。
源代码:select t.*, ROW_NUMBER() OVER( PARTITION BY t.ticket_type ORDER BY t.open_ticket_time DESC ) as rn
from
term t
where
t.ticket_type in(
6, 5, 0, 1, **, *, **, **, *2, 2, 3, 4, 8, 7
)
and t.term_status >= 5
这个代码的意思是根据open_ticket_time倒序的顺序将ticket_type 是( 6, 5, 0, 1, **, *, **, **, *2, 2, 3, 4, 8, 7)还有term_status >= 5的数据对ticket_type 进行分组后排名ROW_NUMBER() 。
相关文章推荐
- sql server ,OVER(PARTITION BY)函数用法,开窗函数,over子句,over开窗函数
- oracle开窗函数over(partition by)函数整理
- mySql 实现排序函数row_number() over(partition by )
- Oracle 分析函数row_number() over (partition by order by ) 的 Mysql的替代方法
- MYSQL-实现ORACLE- row_number() over(partition by ) 分组排序功能
- MYSQL-实现row_number() over(partition by ) 分组排序功能
- OVER(PARTITION BY)函数介绍
- MYSQL-实现分组排序 对比 ORACLE 和SQLserver用 row_number() over(partition by ) 分组排序功能
- OVER(PARTITION BY)函数用法
- oracle分析函数sum/ration_to_report(column) over (partition by column order by column)
- OVER(PARTITION BY)函数介绍
- OVER(PARTITION BY)函数用法
- Oracle分析函数中的分组排名函数用法 Rank Over partition by
- MYSQL-实现ORACLE 和SQLserver数据中- row_number() over(partition by ) 分组排序功能
- ORACLE分析函数的应用例子1 over partition by
- OVER(PARTITION BY)函数用法
- OVER(PARTITION BY)函数介绍
- MYSQL-实现ORACLE- row_number() over(partition by ) 分组排序功能优化
- OVER(PARTITION_BY)函数介绍.
- MYSQL-实现ORACLE- row_number() over(partition by ) 分组排序功能