MySQL和Hive中的行转列、列转行

水善利万物而不争,处众人之所恶,故几于道💦

文章目录

MySQL

1.行转列

把多行转成列。直接group,sum(if())

2.列转行


Hive

1.行转列

sql 复制代码
select 
	name,
	sum(if(km='shuxue',cj,0)) shuxue,
	sum(if(km='yuwen',cj,0)) yuwen,
	sum(if(km='huaxue',cj,0)) huaxue 
from hzl 
group by name

2.列转行

(1)侧窗

hive中除了可以用常规的union all 外,还可以用侧窗

sql 复制代码
-- 侧窗写法
select 
	name,
	km,
	cj 
from lzh2 
	lateral view 
	explode(map('yuwen',yuwen,'shuxue',shuxue,'huaxue',huaxue)) tmp as km,cj;
(2)union
sql 复制代码
-- 常规写法
select name,'shuxue' km,shuxue cj from lzh2 
union all 
select name,'yuwen',yuwen from lzh2 
union all 
select name,'huaxue',huaxue from lzh2;
相关推荐
颂love几秒前
Redis 核心知识点汇总:安装配置 + 9 大数据结构命令与场景
数据库·redis·缓存
IMPYLH4 分钟前
Linux 的 yes 命令
linux·运维·服务器·数据库·bash
i220818 Faiz Ul5 分钟前
相亲网站|相亲网站系统|基于Java+vue相亲网站系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·相亲网站系统
ZFSS11 分钟前
Pika 视频生成 API 集成教程
java·数据库·人工智能·ai·音视频
码不停蹄的玄黓15 分钟前
MySQL 索引失效 12 大场景
数据库·mysql
凯丨16 分钟前
Claude Managed Agents 实战:用多智能体编排 + Webhooks 跑一个“自动审稿流水线“
数据库
吃胖点儿24 分钟前
RAG系统优化完整路径:从30%到90%准确率的工程实践
服务器·数据库·windows
日取其半万世不竭26 分钟前
Docker Compose 服务备份方案:配置、数据和数据库怎么打包
数据库·docker·容器
Anokata30 分钟前
MYSQL 网络连接
数据库·mysql
蜜獾云36 分钟前
mongoDB之分片集群
数据库·mongodb