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

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

前言


作为数据分析师每个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则为四分之三分位数,依此类推。

示例使用:

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

c6910c3f4d344a019353669ced5640f1.png

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


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


85a844654e7540fea35cc9d1d3910db3.png

二、percentile_approx()


函数使用语法:


percentile_approx(DOUBLE col,p,B)


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

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

baaf4e7270934265bc4f42f1f06ac58d.png


当然一样也能输出数列:


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


cfd5a4f9c12846f2ba33b34ff995ceb0.png

目录
相关文章
|
SQL 自然语言处理 关系型数据库
【Hive】函数 concat 、concat_ws 、concat_group 的区别
【Hive】函数 concat 、concat_ws 、concat_group 的区别
2814 0
|
SQL 大数据 HIVE
hive聚合函数多行合并
通过本文,我们详细介绍了Hive中几种常见的聚合函数及其在多行合并中的具体应用。这些聚合函数在处理和分析大数据时非常有用,可以帮助我们高效地进行数据汇总和处理。希望本文对您的学习和工作有所帮助。
1152 13
|
SQL 数据处理 HIVE
【Hive】写出Hive中split、coalesce及collect_list函数的用法?
【4月更文挑战第17天】【Hive】写出Hive中split、coalesce及collect_list函数的用法?
|
SQL JavaScript 前端开发
Hive学习-lateral view 、explode、reflect和窗口函数
Hive学习-lateral view 、explode、reflect和窗口函数
948 4
|
SQL 移动开发 开发工具
Hive 高阶--分组窗口函数--取值分组函数( LAG,LEAD,FIRST_VALUE,LAST_VALUE)|学习笔记
快速学习 Hive 高阶--分组窗口函数--取值分组函数( LAG,LEAD,FIRST_VALUE,LAST_VALUE)
1200 0
|
SQL 存储 分布式计算
Hive学习---5、分区表和分桶表
Hive学习---5、分区表和分桶表
|
SQL HIVE
【Hive SQL】字符串操作函数你真的会用吗?
本文介绍了SQL中判断字符串是否包含子串的几种方法。`IN`函数判断元素是否完全等于给定元素组中的某项,而非包含关系。`INSTR`和`LOCATE`函数返回子串在字符串中首次出现的位置,用于检测是否存在子串。`SUBSTR`则用于提取字符串的子串。`LIKE`用于模糊匹配,常与通配符配合使用。注意`IN`并非用于判断子串包含。
1657 3
|
SQL 存储 Java
Hive 特殊的数据类型 Array、Map、Struct
在Hive中,`Array`、`Map`和`Struct`是三种特殊的数据类型。`Array`用于存储相同类型的列表,如`select array(1, "1", 2, 3, 4, 5)`会产生一个整数数组。`Map`是键值对集合,键值类型需一致,如`select map(1, 2, 3, "4")`会产生一个整数到整数的映射。`Struct`表示结构体,有固定数量和类型的字段,如`select struct(1, 2, 3, 4)`创建一个无名结构体。这些类型支持嵌套使用,允许更复杂的结构数据存储。例如,可以创建一个包含用户结构体的数组来存储多用户信息
3504 0
|
SQL 数据库 HIVE
Hive【基础知识 05】常用DDL操作(数据库操作+创建表+修改表+清空删除表+其他命令)
【4月更文挑战第8天】Hive【基础知识 05】常用DDL操作(数据库操作+创建表+修改表+清空删除表+其他命令)
2185 0