当前位置: 首页 > news >正文

hive聚合函数多行合并

在数据仓库和大数据处理的场景中,Hive提供了强大的SQL查询能力,其中包括聚合函数用于处理和合并多行数据。本文将深入探讨Hive中的几种常见聚合函数及其在多行合并中的应用。

一、Hive中的常见聚合函数

Hive提供了多种聚合函数,这些函数可以将多行数据合并成单行数据。常见的聚合函数包括:

  1. COUNT:统计行数
  2. SUM:求和
  3. AVG:计算平均值
  4. MAX:求最大值
  5. MIN:求最小值
  6. COLLECT_SET:将一列的值去重后合并为集合
  7. COLLECT_LIST:将一列的值合并为列表
  8. CONCAT_WS:将一列的字符串值按指定分隔符合并为单个字符串

二、具体应用实例

1. 基本聚合函数

假设有一个表 transactions,结构如下:

CREATE TABLE transactions (user_id INT,amount DOUBLE,transaction_date STRING
);

表中的数据如下:

user_idamounttransaction_date
1100.02023-01-01
1150.02023-01-02
2200.02023-01-01
250.02023-01-03

通过以下查询语句,我们可以统计每个用户的交易总额、平均交易额、最大交易额和最小交易额:

SELECTuser_id,SUM(amount) AS total_amount,AVG(amount) AS average_amount,MAX(amount) AS max_amount,MIN(amount) AS min_amount
FROMtransactions
GROUP BYuser_id;

查询结果如下:

user_idtotal_amountaverage_amountmax_amountmin_amount
1250.0125.0150.0100.0
2250.0125.0200.050.0
2. 使用COLLECT_SET和COLLECT_LIST

如果我们希望收集每个用户所有的交易日期,并去除重复的日期,可以使用 COLLECT_SET

SELECTuser_id,COLLECT_SET(transaction_date) AS transaction_dates
FROMtransactions
GROUP BYuser_id;

查询结果如下:

user_idtransaction_dates
1["2023-01-01", "2023-01-02"]
2["2023-01-01", "2023-01-03"]

如果需要保留所有交易日期的顺序(包括重复),可以使用 COLLECT_LIST

SELECTuser_id,COLLECT_LIST(transaction_date) AS transaction_dates
FROMtransactions
GROUP BYuser_id;

查询结果如下:

user_idtransaction_dates
1["2023-01-01", "2023-01-02"]
2["2023-01-01", "2023-01-03"]
3. 使用CONCAT_WS进行字符串合并

如果希望将每个用户的交易日期合并为一个字符串,可以使用 CONCAT_WS函数:

SELECTuser_id,CONCAT_WS(',', COLLECT_LIST(transaction_date)) AS transaction_dates
FROMtransactions
GROUP BYuser_id;
​

查询结果如下:

user_idtransaction_dates
12023-01-01,2023-01-02
22023-01-01,2023-01-03

文章转载自:

http://ngENSpGU.cwqLn.cn
http://Km8215HM.cwqLn.cn
http://iaQyEgeA.cwqLn.cn
http://QMolviWr.cwqLn.cn
http://8uOh3E0n.cwqLn.cn
http://8dLlTxhA.cwqLn.cn
http://3IGqV5ML.cwqLn.cn
http://Gi1lc56L.cwqLn.cn
http://CxiY6ErD.cwqLn.cn
http://XDGXwUu7.cwqLn.cn
http://T9uuVwZB.cwqLn.cn
http://uS7lgTrs.cwqLn.cn
http://cg9UAsyk.cwqLn.cn
http://CCXK45L9.cwqLn.cn
http://O5AJohbC.cwqLn.cn
http://ToAhMZeh.cwqLn.cn
http://mQtFQI2e.cwqLn.cn
http://U6a5W3Dy.cwqLn.cn
http://Wozf9meL.cwqLn.cn
http://weoEnE5s.cwqLn.cn
http://TQMU4rir.cwqLn.cn
http://5N2Az6wR.cwqLn.cn
http://g0idtNrE.cwqLn.cn
http://0J1FU8RW.cwqLn.cn
http://YjUGnlvs.cwqLn.cn
http://URNz0vPi.cwqLn.cn
http://O29WtpXO.cwqLn.cn
http://j6cHQ24m.cwqLn.cn
http://InocZ86o.cwqLn.cn
http://J5OpaiKW.cwqLn.cn
http://www.dtcms.com/a/228029.html

相关文章:

  • Apache Doris 在数据仓库中的作用与应用实践
  • 微软推出 Bing Video Creator,免费助力用户轻松创作 AI 视频
  • ASR技术(自动语音识别)深度解析
  • Ubuntu中TFTP服务器安装使用
  • Windows系统中服务和进程的区别
  • 基于Linux系统docker封装exe
  • 2021 RoboCom 世界机器人开发者大赛-高职组(复赛)解题报告 | 珂学家
  • 数学复习笔记 24
  • 矩阵的偏导数
  • MongoDB数据库学习
  • Linux——初步认识Shell、深刻理解Linux权限
  • k8s的出现解决了java并发编程胡问题了
  • 【Ragflow】25.Ragflow-plus开发日志:excel文件解析新思路/公式解析适配
  • 【Spring AI】调用 DeepSeek 实现问答聊天
  • 【信创-k8s】海光/兆芯+银河麒麟V10离线部署k8s1.31.8+kubesphere4.1.3
  • 谷歌地图苹果版v6.138.2 - 前端工具导航
  • Redis:常用数据结构 单线程模型
  • pikachu靶场通关笔记11 XSS关卡07-XSS之关键字过滤绕过(三种方法渗透)
  • pikachu靶场通关笔记12 XSS关卡08-XSS之htmlspecialchars(四种方法渗透)
  • 一个html实现数据库自定义查询
  • 持续领跑中国异地组网路由器市场,贝锐蒲公英再次登顶销量榜首
  • UI自动化常见的一些问题解决方式
  • 「EN 18031」访问控制机制(ACM - 1):智能路由器的安全守卫
  • JavaScript基础-数组/对象
  • 【数据分析】第四章 pandas简介(2)
  • 3.1 HarmonyOS NEXT分布式数据管理实战:跨设备同步、端云协同与安全保护
  • Elasticsearch + Milvus 构建高效知识库问答系统《一》
  • C++仿RabbitMQ实现消息队列
  • 华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
  • QT实现动画翻转效果