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;
相关推荐
念何架构之路12 分钟前
beego ORM 源码(下):SQL 生成与方言
数据库·sql·beego
livemetee34 分钟前
MySQL联合唯一索引(code,deleted)与逻辑删除问题
java·数据库
Doris__HE34 分钟前
【元脑服务器NF8480G7-NF8480M7技术规格分享】
运维·服务器·数据库·缓存·性能优化
实心儿儿37 分钟前
MySQL — 库的操作
数据库·mysql·oracle
bksczm37 分钟前
MySQL基础篇之索引
数据库·sql·mysql
Lethehong1 小时前
让数据库真正“长“在 Kubernetes 里:KES-Operator 正式发布,K8s 环境下的 KES 集群管理有了标准答案
数据库
l1t1 小时前
DeepSeek总结的PostgreSQL 19 发生了什么
数据库·postgresql
Pocker_Spades_A1 小时前
时序数据库选型指南:从大数据视角看Apache IoTDB的工业级优势
数据库
梦想平凡1 小时前
情怀棋牌源代码焕新记录(一):全新国风UI与原版工程梳理
java·服务器·数据库·websocket·网络协议·cocos2d
cspttty1 小时前
FP&A应届岗技能路线:Excel建模、SQL取数、BI看板与预算分析
大数据·数据库