hive查询dense_rank(),rank(),row_number()的区别

1、hive中查询一组中的前几名,就用到dense_rank(),rank(),row_number()这几个函数,他们的区别在于
rank()就是排序 相同的排序是一样的,但是下一个小的会跳着排序,比如
等级 排序
23 1
23 1
22 3
dense_rank()相同的排序相同,下一个小的会紧挨着排序,比如
等级 排序
23 1
23 1
22 2
这样总个数是相对减少的,适合求某些指标前几个等级的个数。
row_number()就很简单,顺序排序。比如
等级 排序
23 1
23 2
22 3
这种排序 总个数是不变的,适合求某些值的前几名。

posted @ 2017-09-01 11:12  努力的喵喵  阅读(7326)  评论(0编辑  收藏  举报