【数据库】Hive SQL–如何使用分位数函数(percentile)

【数据库】Hive SQL–如何使用分位数函数(percentile)在做一些酒店产量分析时 用到统计学中常用的分位数函数 所以就学习了一下分位数函数在 HIVE 中的应用 HIVE 中有两个关于分为数的函数 percentile 和 percentile approx 使用方式 percentile percentile col p col 是要计算的列 值必须为 int 类型 p 的取值为 0 1 若为 0 2 那么就是 2 分位数 依次类推 percentile

在做一些酒店产量分析时,用到统计学中常用的分位数函数,所以就学习了一下分位数函数在HIVE中的应用。

HIVE中有两个关于分为数的函数:percentilepercentile_approx。

使用方式:

percentile:percentile(col, p) col是要计算的列(值必须为int类型),p的取值为0-1,若为0.2,那么就是2分位数,依次类推。

percentile_approx:percentile_approx(col, p)。列为数值类型都可以。

percentile_approx还有一种形式percentile_approx(col, p,B),参数B控制内存消耗的近似精度,B越大,结果的精度越高。默认值为10000。当col字段中的distinct值的个数小于B时,结果就为准确的百分位数。

如果需要多个分位数,可以一次性取出来,案例如下:

去每天的UV的第二个十分位数、第四个十分位数,第六个十分位数、第八个十分位数:

select d, percentile_approx(uv, array(0.2,0.4,0.6,0.8), 9999) as uv --2%分位数作为最小值 from aa group by d

结果如下:

【数据库】Hive SQL--如何使用分位数函数(percentile)

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/218127.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午7:58
下一篇 2026年3月18日 上午7:59


相关推荐

  • linux授权文件给指定用户_批量从文件夹移除文件

    linux授权文件给指定用户_批量从文件夹移除文件Linux 如何将一个文件夹的所有内容授权给某一个用户

    2022年4月20日
    51
  • jsessionid的困扰「建议收藏」

    问题:向某银行发送支付请求时,如果客户端cookie开启,第一次请求时,请求地址会自动增加一jsessionid,第二次没有问题。如果客户端cookie关闭,无论如何请求地址会自动添加一jsessionid,从而导致支付页面不能显示。————————-查了网上的一些解决办法,找到原因,如下:在你的程序第一次访问服务器的时候,服务端并不知道

    2022年4月14日
    111
  • ubuntu支持的文件系统类型_常见的文件系统有哪两种

    ubuntu支持的文件系统类型_常见的文件系统有哪两种文件系统类型在windows中我们常见的磁盘格式有fat16、fat32和ntfs。但是windows的文件管理显得有些赘余,为打开一个文件需要打开n个地方,在一个角落里找。而且windows本身对于其他系统的文件格式就更差了,没有听说在windows里打开ext3或者mac日志式。windows是一个封闭的系统。在ubuntu中其文件系统广泛使用ext3的文件格式,从而实现了将整个

    2025年12月13日
    5
  • 海量数据查询方案mysql_Mysql海量数据存储和解决方案之二—-Mysql分表查询海量数据…[通俗易懂]

    关键词:分库分表,路由机制,跨区查询,MySQL数据变更,分表数据查询管理器与线程技术的结合,Cache前面已经讲过Mysql实现海量海量数据存储查询时,主要有几个关键点,分表,分库,集群,M-S,负载均衡。其中分库分表是很重要的一点。分库是如何将海量的Mysql数据放到不同的服务器中,分表则是在分库基础上对数据现进行逻辑上的划分。数据划分可有多种方式,找到一个主键后,可以按号段分,也可以Has…

    2022年4月14日
    71
  • plc的移位指令C语言实现,PLC中使用移位指令是如何实现移位动作的

    plc的移位指令C语言实现,PLC中使用移位指令是如何实现移位动作的plc移位指令怎么么用楼主的意思大约是用X2来检测有没有罐子,X1用来定位灌装位置,现在需要把检测罐子的X2位置,移动到灌装位置的前面,应该是提供图片的下面的那种应用吧,这种应用的思路其实主要是要记录下到灌装工位时是否有罐子,程序在图片里面,假设开机前X1和X2之间没有罐子开机后传送带运转当X1检测到应该有罐子的工位来到罐装工位时,首先将检测罐子有无的X2的状态放入M3中,有罐子M3为1,没罐子M…

    2022年5月1日
    66
  • 欠采样和过采样_过采样和欠采样

    欠采样和过采样_过采样和欠采样欠采样和过采样简介 Introduction TheImbalance Okay theskewmayno

    2026年3月16日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号