四⼤排序函数
⽂章⽬录
分类
1. row_number:顺序排序
2. rank:跳跃排序,如果有两个第⼀级别时,接下来是第三级别
3. dense_rank:连续排序,如果有两个第⼀级别时,接下来是第⼆级别
4. ntile:分组处理(分桶处理)
ntile函数分组约定:
  (1) 每组的记录数不能⼤于它上⼀组的记录数,即编号⼩的桶放的记录数不能⼩于编号⼤的桶。也就是说,第1组中的记录数只能
⼤于等于第2组及以后各组中的记录数。
groupby是什么函数
  (2) 所有组中的记录数要么都相同,要么从某⼀个记录较少的组(命名为X)开始后⾯所有组的记录数都与该组(X组)的记录数
相同。也就是说,如果有个组,前三组的记录数都是9,⽽第四组的记录数是8,那么第五组和第六组的记录数也必须是8
总结
1. 关于Parttion by:
  Parttion by关键字是Oracle中分析性函数的⼀部分,⽤于给结果集进⾏分区。它和聚合函数Group by不同的地⽅在于它只是将原始数据进⾏名次排列,能够返回⼀个分组中的多条记录(记录数不变),⽽Group by是对原始数据进⾏聚合统计,⼀般只有⼀条反映统计值的结果(每组返回⼀条)。
2. 关于空值:
  使⽤rank over()的时候,空值是最⼤的,如果排序字段为null, 可能造成null字段排在最前⾯,影响排序结果。
  可以这样: rank over(partition by derpartment order by Salary desc nulls last)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。