当前位置: 首页 > 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

相关文章:

  • 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实现数据库自定义查询
  • 营销型企业网站包括哪些类型/关键词搜索方法
  • 手机百度怎么解除禁止访问网站/东莞服务好的营销型网站建设
  • 视频网站做游戏分发/品牌推广方案怎么写
  • 买正品去哪个网站最好/新开发的app怎么推广
  • 设计的网站都有哪些功能/百度平台订单查询
  • 做微商卖产品在哪个网站销量能好点/微信app小程序开发