• HiveSQL分位数函数percentile()使用详解+实例代码


    目录

    前言

    一、percentile()

    二、percentile_approx()

    点关注,防走丢,如有纰漏之处,请留言指教,非常感谢



    前言

    作为数据分析师每个SQL数据库的函数以及使用技能操作都得点满,尤其是关于统计函数的使用方法。关于统计出数据的中位数,众数和分位数的方法必须掌握几种,一般在实际业务上大部分都是以写SQL查询为主,因为如果想用Python的Pandas去做数据分析还得将数据导出来读出来,输出了结果还得再倒进去,十分的麻烦。若是能在SQL上面直接处理简单问题,那么效率要远高于导出做Pandas处理。本篇文章主要介绍percentile分位数函数使用方法,后几篇文章将主要详解每个SQL中统计函数的使用方法,感兴趣觉得帮助大的朋友可以关注。本篇博客博主将长期维护,若有错误请在评论区指出。


    HiveSQL中关于分位数的计算主要是通过percentile()percentile_approx()这两个函数来实现。

    一、percentile()

    函数使用语法:

    percentile(col, p)

    参数说明:
    col:指定需要计算的列名,并且列的值必须为int类型。

    p:指定得到的分位数数值,取值范围为[0,1],若为0.5则为中位数,若为0.75则为四分之三分位数,依此类推。

    示例使用:

    1. SELECT percentile(num,0.2) as two_parts#取二分位数
    2. FROM dbbasename.table

     

    另外还可以已数列的方式输入p,则也回返回一个数列,包含其输入数列对应的百分位数:

    1. SELECT percentile(num,array(0.2,0.4,0.6)) as parts#取二分位数
    2. FROM dbbasename.table

    二、percentile_approx()

    函数使用语法:

    percentile_approx(DOUBLE col,p,B) 

    求近似的第p个百分位数,p必须介于0和1之间,返回类型为double,但是col字段支持浮点类型。参数B控制内存消耗的近似精度,B越大,结果的精度越高。默认值为10000。当col字段中的distinct值的个数小于B时,结果就为准确的百分位数。

    1. SELECT percentile_approx(num,0.2,9999) as two_parts#取二分位数
    2. FROM dbbasename.table

     

    当然一样也能输出数列:

    1. SELECT percentile_approx(num,array(0.25,0.5,0.75)) as parts#取二分位数
    2. FROM dbbasename.table

    点关注,防走丢,如有纰漏之处,请留言指教,非常感谢

    以上就是本期全部内容。我是fanstuck ,有问题大家随时留言讨论 ,我们下期见。


  • 相关阅读:
    9. 函数
    智能sql LLM
    Linux 进程间通信---信号
    买极米NEW Z8X的我后悔了,换成当贝F3 Air可真香
    46、video-nerf
    干货分享!JAVA诊断工具Arthas在Rainbond上实践~
    DEJA_VU3D - Cesium功能集 之 052-模拟卫星轨道(高空)效果
    van-popup滑动卡顿并且在有时候在ios上经常性滑动卡顿的情况
    LeetCode20.有效的括号
    Tomcat线程池与Fork/Join使用
  • 原文地址:https://blog.csdn.net/master_hunter/article/details/126642158