数据库分析函数 ROW_NUMBER() rank() dense_rank() 的区别 first_value(D) , last_value(D)

直接上图

select * from tab

数据库分析函数 ROW_NUMBER()  rank()  dense_rank() 的区别   first_value(D) ,  last_value(D)

select B,ROW_NUMBER()over(order by B) from tab

当碰到相同数据时,排名按照记录集中记录的顺序依次递增。  遇到相同数据 不影响排序 序列号

数据库分析函数 ROW_NUMBER()  rank()  dense_rank() 的区别   first_value(D) ,  last_value(D)

select B,rank()over(order by B) from tab

当碰到相同的数据时,此时所有相同数据的排名是一样的,同时会在最后一条相同记录和下一条不同记录的排名之间空出排名。

遇到相同数据 影响排序   值相同 排序序号也相同,下一条数据 指在整张表的排名

数据库分析函数 ROW_NUMBER()  rank()  dense_rank() 的区别   first_value(D) ,  last_value(D)

select B,dense_rank()over(order by B) from tab

当碰到相同数据时,此时所有相同数据的排名都是一样的。

值相同 排序序号也相同,下一条数据 跟着排名排

数据库分析函数 ROW_NUMBER()  rank()  dense_rank() 的区别   first_value(D) ,  last_value(D)

select B,D,first_value(D)over(partition by B order by B) from tab

根据B分组   再排序 再取组里 第一条

数据库分析函数 ROW_NUMBER()  rank()  dense_rank() 的区别   first_value(D) ,  last_value(D)

select B,D,last_value(D)over(partition by B order by B) from tab

根据B分组   再排序 再取组里 最后一条

数据库分析函数 ROW_NUMBER()  rank()  dense_rank() 的区别   first_value(D) ,  last_value(D)

切记一下

select D,sum(D)over(order by D) from tab

新增的列 根据排序字段 D  第一组到当前组 执行sum(D)

数据库分析函数 ROW_NUMBER()  rank()  dense_rank() 的区别   first_value(D) ,  last_value(D)

select B,D,sum(D)over(order by B) from tab

数据库分析函数 ROW_NUMBER()  rank()  dense_rank() 的区别   first_value(D) ,  last_value(D)

select B,D,sum(D)over() from tab

数据库分析函数 ROW_NUMBER()  rank()  dense_rank() 的区别   first_value(D) ,  last_value(D)

上一篇:css面包屑导航编号


下一篇:【Leetcode】【Medium】Unique Binary Search Trees II