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

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

一步一个脚印,一天一道大数据面试题

博主希望能够得到大家的点赞收藏支持!非常感谢
点赞,收藏是情分,不点是本分。祝你身体健康,事事顺心!

行转列

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

步骤:

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

样例数据:

-- 样例 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          |
+-----------+------------+-------------+

开始行转列:

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            |
+-----------+--------------+-------------+---------------+

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 「网络通信」HTTP 协议
  • 服务器系统盘存储不够,添加数据盘并挂载(阿里云)
  • 各模型文件后缀及其相关框架和用途的简要介绍
  • SCI一区级 | Matlab实现SSA-CNN-GRU-Multihead-Attention多变量时间序列预测
  • 学懂C语言(十): C语言位运算符(按位与、按位或、左移、右移、异或、取反)的计算过程和底层原理
  • vue使用audio 音频实现播放与关闭(可用于收到消息给提示音效)
  • 4.基础知识-数据库技术基础
  • 河南萌新联赛2024第(一)场:河南农业大学
  • kafka---消息日志详解
  • 【LeetCode】day17:654 - 最大二叉树, 617 - 合并二叉树, 700 - 二叉树搜索树中的搜索, 98 - 验证二叉搜索树
  • PyTorch Tabular:高效优化结构化数据处理的强大工具
  • 达梦数据库系列—29. DTS迁移ORACLE到DM
  • C++多线程编程中的锁详解
  • 并发编程面试题1
  • 在C#中,如何优化对象的创建和销毁以提高性能?
  • 345-反转字符串中的元音字母
  • Fabric架构演变之路
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • Laravel Mix运行时关于es2015报错解决方案
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • MaxCompute访问TableStore(OTS) 数据
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • Spring Boot快速入门(一):Hello Spring Boot
  • webpack+react项目初体验——记录我的webpack环境配置
  • 分类模型——Logistics Regression
  • 计算机常识 - 收藏集 - 掘金
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 浏览器缓存机制分析
  • 前端之Sass/Scss实战笔记
  • 使用 @font-face
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 通信类
  • 微信小程序--------语音识别(前端自己也能玩)
  • 小而合理的前端理论:rscss和rsjs
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 自动记录MySQL慢查询快照脚本
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • PostgreSQL之连接数修改
  • 说说我为什么看好Spring Cloud Alibaba
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​【数据结构与算法】冒泡排序:简单易懂的排序算法解析
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #13 yum、编译安装与sed命令的使用
  • #define与typedef区别
  • #数学建模# 线性规划问题的Matlab求解
  • $jQuery 重写Alert样式方法
  • (0)Nginx 功能特性
  • (12)Linux 常见的三种进程状态
  • (2024,Flag-DiT,文本引导的多模态生成,SR,统一的标记化,RoPE、RMSNorm 和流匹配)Lumina-T2X
  • (7)摄像机和云台
  • (LeetCode) T14. Longest Common Prefix
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (zt)最盛行的警世狂言(爆笑)
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (接口自动化)Python3操作MySQL数据库