【大数据面试题】38 说说 Hive 怎么行转列

一步一个脚印,一天一道大数据面试题
博主希望能够得到大家的点赞收藏支持!非常感谢

点赞,收藏是情分,不点是本分。祝你身体健康,事事顺心!

行转列

假设我们有一张名为 sales_data 的表,其中包含 product_id(产品 ID)、category(类别)和 sales_amount(销售金额)这几列的数据。

步骤:

  1. group by id
  2. 聚合函数sum/max/min,里面套一个 if / case when
  3. as 列名

样例数据:

sql 复制代码
-- 样例 SQL
SELECT * FROM students;
+-----------+------------+-------------+
| stu_id    | subject    | score       |
+-----------+------------+-------------+
| 1         | Chinese    | 80          |
| 1         | Math       | 70          |
| 1         | English    | 75          |
| 2         | Chinese    | 77          |
| 2         | Math       | 60          |
| 2         | English    | 80          |
+-----------+------------+-------------+

开始行转列:

sql 复制代码
SELECT stu_id,
       SUM(IF(subject = 'Chinese', score, 0) AS chinese_score),
       SUM(IF(subject = 'Math', score, 0) AS math_score),
       SUM(IF(subject = 'English', score, 0) AS english_score)
FROM students
GROUP BY stu_id;

+-----------+--------------+-------------+---------------+
| stu_id    | chinese_score| math_score  | english_score |
+-----------+--------------+-------------+---------------+
| 1         | 80           | 70          | 75            |
| 2         | 77           | 60          | 80            |
+-----------+--------------+-------------+---------------+

我是近未来,祝你变得更强!

相关推荐
萤丰信息8 分钟前
开启园区“生命体”时代——智慧园区系统,定义未来的办公与生活
java·大数据·运维·数据库·人工智能·生活·智慧园区
TDengine (老段)28 分钟前
TDengine Rust 连接器进阶指南
大数据·数据库·物联网·rust·时序数据库·tdengine·涛思数据
YangYang9YangYan35 分钟前
中专大数据技术专业学习数据分析的价值分析
大数据·学习·数据分析
九河云40 分钟前
数据驱动未来,华为云DWS为智能决策提速
大数据·人工智能·安全·机器学习·华为云
FONE_Platform1 小时前
能源化工行业全面预算解决方案:重塑双碳目标下的财务新动能
大数据·人工智能
项目整合库1 小时前
Coinstore B.KU 数字金融与 RWA 主题活动圆满举行
大数据·金融
kekekka2 小时前
2026年软文营销平台深度甄选指南:破解选择困境,聚焦长效价值
大数据·媒体
华奥系科技2 小时前
老旧社区适老化智能改造,两个系统成社区标配项目
大数据·人工智能
Jackyzhe2 小时前
Flink源码阅读:Netty通信
大数据·flink