数据库分析函数 ROW_NUMBER() rank() dense_rank() 的区别 first_value(D) , last_value(D)
2017-12-15 16:34
381 查看
直接上图
select * from tab
select B,ROW_NUMBER()over(order by B) from tab
当碰到相同数据时,排名按照记录集中记录的顺序依次递增。 遇到相同数据 不影响排序 序列号
select B,rank()over(order by B) from tab
当碰到相同的数据时,此时所有相同数据的排名是一样的,同时会在最后一条相同记录和下一条不同记录的排名之间空出排名。
遇到相同数据 影响排序 值相同 排序序号也相同,下一条数据 指在整张表的排名
select B,dense_rank()over(order by B) from tab
当碰到相同数据时,此时所有相同数据的排名都是一样的。
值相同 排序序号也相同,下一条数据 跟着排名排
select B,D,first_value(D)over(partition by B order by B) from tab
根据B分组 再排序 再取组里 第一条
select B,D,last_value(D)over(partition by B order by B) from tab
根据B分组 再排序 再取组里 最后一条
切记一下
select D,sum(D)over(order by D) from tab
新增的列 根据排序字段 D 第一组到当前组 执行sum(D)
select B,D,sum(D)over(order by B) from tab
select B,D,sum(D)over() from tab
相关文章推荐
- Oracle分析函数总结(2) - 排序 - rank,dense_rank,row_number,first,first_value,last,last_value,lag,lead
- 数据库-函数-over,row_number,dense_rank,rank,log,lead,first_value等
- rank()、dense_rank()、row_number()、first、last比较
- rank,dense_rank,row_number使用和区别
- oracle中的RANK()、ROW_NUMBER()、DENSE_RANK()区别和使用
- SQL Server 中row_number() over(order by )和rank、dense_rank()的区别
- rank,dense_rank,row_number使用和区别
- rank,dense_rank,row_number使用和区别
- row_number()、rank()和dense_rank()的区别以及具体使用
- rank() | dense_rank() | row_number() over(PARTITION BY sex order by age desc ) 的区别
- postgresql rank() over, dense_rank(), row_number() 的区别
- row_number(),rownum(),rank(),dense_rank()的区别
- hive查询dense_rank(),rank(),row_number()的区别
- Oracle中rank() over, dense_rank(), row_number() 的区别
- 分析函数--FIRST_VALUE,LAST_VALUE,LAG,LEAD,ROW_NUMBER
- 分析函数ROW_NUMBER,RANK,DENSE_RANK,FIRST,NTILE,RATIO_TO_REPORT等
- Oracle中rank() over, dense_rank(), row_number() 的区别
- hive的row_number()、rank()和dense_rank()的区别以及具体使用
- rank(),dense_rank(),row_number()分析函数用法和区别
- Oracle中rank() over, dense_rank(), row_number() 的区别