1、Ntile使用
可以看成是:它把有序的数据集合平均分配到指定的数量(num)个桶中, 将桶号分配给每一行。如果不能平均分配,则优先分配较小编号的桶,并且各个桶中能放的行数最多相差1。
语法是:ntile (num)  over ([partition_clause]  order_by_clause)  as your_bucket_num
然后可以根据桶号,选取前或后 n分之几的数据。
数据会完整展示出来,只是给相应的数据打标签;具体要取几分之几的数据,需要再嵌套一层根据标签取出。
1.1、总体分片

select uid,sum(amount) pay_amount,ntile(100)over(order by sum(amount) desc) til
from data_chushou_pay_info
where pt_day between '2017-01-01' and '2017-11-14' and state=0
group by uid;select pt_month,sum(amount) pay_amount,ntile(3)over(order by sum(amount) desc) til
from data_chushou_pay_info
where pt_month between '2017-01' and '2017-11' and state=0
group by pt_month;

1.2、分组内分片

select pt_month,pt_day,sum(amount) pay_amount,ntile(3)over(partition by pt_month order by sum(amount) desc) til
from data_chushou_pay_info
where pt_month between '2017-09' and '2017-11' and state=0
group by pt_month,pt_day;

2、排名函数
ROW_NUMBER() 
–从1开始,按照顺序,生成分组内记录的序列
RANK 和 DENSE_RANK
—RANK() 生成数据项在分组中的排名,排名相等会在名次中留下空位
—DENSE_RANK() 生成数据项在分组中的排名,排名相等会在名次中不会留下空位

2.1、分组3种排名

select pt_month,uid,sum(amount) pay_amount,
ROW_NUMBER()over(partition by pt_month order by sum(amount) desc) rk1,
RANK()over(partition by pt_month order by sum(amount) desc) rk2,
DENSE_RANK()over(partition by pt_month order by sum(amount) desc) rk3
from data_chushou_pay_info
where pt_day between '2017-01-01' and '2017-11-14' and state=0
group by pt_month,uid;

2.2、总体3种排名

select pt_month,uid,sum(amount) pay_amount,
ROW_NUMBER()over(order by sum(amount) desc) rk1,
RANK()over(order by sum(amount) desc) rk2,
DENSE_RANK()over(order by sum(amount) desc) rk3
from data_chushou_pay_info
where pt_day between '2017-01-01' and '2017-11-14' and state=0
group by pt_month,uid;

Hive分析函数之ntile、排名函数学习相关推荐

  1. 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介

    排名函数是Sql Server2005新增的功能,下面简单介绍一下他们各自的用法和区别.我们新建一张Order表并添加一些初始数据方便我们查看效果. 表结构和初始数据Sql 附上表结构和初始数据图: ...

  2. Presto 文档学习之 窗口函数(Window Functions)排名函数(Ranking Functions)

    Hello!大家好,本人菜鸟一枚,最近在领导的要求下学习Prestodb,没办法只能打开官方文档来自我学习,对于英语渣的我来说无疑是痛苦的,看到的页面和天书一样 谷歌翻译过来的吧 很多句子看不懂想要具 ...

  3. 基于hive的SQL排名函数详解

    前言 在hive的学习中接触到了三种很实用的排名函数,这些函数在Mysql8.0版本中也已存在, 分别是:Rank(),Dense_rank(),Row_number(), 虽然都是排名函数,但三者间 ...

  4. SQL2005 四个排名函数(row_number、rank、dense_rank和ntile)的比较

    排名函数是SQL Server2005新加的功能.在SQL Server2005中有如下四个排名函数row_number.rank.dense_rank和ntile,需要的朋友可以参考下. 排名函数是 ...

  5. SQL With As 用法Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介

    Sql 四大排名函数(ROW_NUMBER.RANK.DENSE_RANK.NTILE)简介 排名函数是Sql Server2005新增的功能,下面简单介绍一下他们各自的用法和区别.我们新建一张Ord ...

  6. HiveQL学习笔记(二):Hive基础语法与常用函数

    本系列是本人对Hive的学习进行一个整理,主要包括以下内容: 1.HiveQL学习笔记(一):Hive安装及Hadoop,Hive原理简介 2.HiveQL学习笔记(二):Hive基础语法与常用函数 ...

  7. java中rank函数_SQL中的排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介

    排名函数是Sql Server2005新增的功能,下面简单介绍一下他们各自的用法和区别. 在使用排名函数的时候需要注意以下三点: 1.排名函数必须有 OVER 子句. 2.排名函数必须有包含 ORDE ...

  8. mysql rank函数_Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介

    排名函数是Sql Server2005新增的功能,下面简单介绍一下他们各自的用法和区别.我们新建一张Order表并添加一些初始数据方便我们查看效果. 表结构和初始数据Sql 附上表结构和初始数据图: ...

  9. sql 四大排名函数---(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介

    1.ROW_NUMBER() 定义:ROW_NUMBER()函数作用就是将select查询到的数据进行排序,每一条数据加一个序号,他不能用做于学生成绩的排名,一般多用于分页查询,  比如查询前10个 ...

最新文章

  1. php 多人游戏_「谁会是下一个王者农药」云服务器如何搭建游戏服务器?
  2. Python-使用python-memcache操作Memcached
  3. 【计算理论】计算复杂性 ( 算法复杂度标记 | 渐进上界 | 大 O 记号 | 常用的渐进上界 )
  4. SpringMVC 中静态资源的处理
  5. 子网划分以及子网掩码
  6. Python3——JSON
  7. 关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
  8. Asp.Net 构架(HttpModule 介绍) - Part.3
  9. hibernate5(8)操纵对象入门[3]操控对象封装方法
  10. python numpy diff_Python numpy.uint16方法代码示例
  11. matlab编写erf函数
  12. 内存超频时序怎么调_一个傻瓜式内存超频教程
  13. 文件名太长无法删除怎么办?
  14. Maya N动力学管理工具 v1.2.2 下载及教程
  15. 智能家居更智能,小程序的生态合作新方案
  16. excel数据库_标签打印软件中Excel数据整理及导入
  17. Educoder头歌单总线CPU设计(定长指令周期3级时序)(HUST)谭志虎 华中科技大学计算机组成原理实验计算机硬件系统设计
  18. 工业虚拟仿真软件系统解决方案
  19. First-chance exception at 0x774CEB23 (ntdll.dll) in XXX.exe: 0xC0000005: Access violation writing
  20. 启动Oracle服务报错:本地计算机上的OracleOraDb10g_homeTNSListener服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。

热门文章

  1. 魅族再次助推陌陌商业化,不遗余力为其洗白
  2. 编码标准:纪律和人因工程的双剑合璧
  3. 单片机连接MySQL数据库
  4. 揭秘中医养生之道,中药世家达人教你从喝茶开始养生
  5. 家庭影院投影仪比较,哪个投影仪的牌子好
  6. [机缘参悟-73]:深度思考:心智提升的七个阶段
  7. 深度剖析整数在内存中存储的问题
  8. 习题 5.14 输入n个字符串,把其中以字母A打头的字符串输出。
  9. 德国技术工人工资高吗
  10. 三创赛优秀作品_全国电子商务三创赛省赛优秀作品.doc