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;
相关推荐
数智化管理手记7 分钟前
异常反复出现?精益生产生产异常闭环的三大常见问题场景
大数据·数据库·低代码·制造·精益工程
菜鸟小码12 分钟前
Hive数据模型、架构、表类型与优化策略
hive·hadoop·架构
2301_8166602113 分钟前
golang如何实现SSRF防护策略_golang SSRF防护策略实现方案
jvm·数据库·python
流年如夢16 分钟前
自定义类型进阶:联合与枚举
java·c语言·开发语言·数据结构·数据库·c++·算法
解救女汉子18 分钟前
CSS3 按钮悬停时显示手型光标(cursor- pointer)的正确写法
jvm·数据库·python
csdn2015_24 分钟前
spring boot 启动的时候将数据库里的分类信息写入redis
数据库·spring boot·redis
四维迁跃30 分钟前
c++怎么在写入文件流时通过peek预读功能实现复杂的逻辑判断【实战】
jvm·数据库·python
小超同学你好36 分钟前
OpenClaw 深度解析与源代码导读 · 第7篇:Memory 子系统——持久化、内置记忆与「人格文件」分界
数据库
2301_7751481536 分钟前
如何管理RAC归档日志_共享存储中的FRA配置与双节点访问
jvm·数据库·python
RoboWizard39 分钟前
移动固态硬盘的耐用性如何,怎么判断使用寿命?
服务器·数据库·负载均衡