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;
相关推荐
信创天地几秒前
国产关系型数据库部署与权限管理实战:人大金仓、达梦、南大通用、华为GaussDB
数据库·华为·gaussdb
l1t19 分钟前
psql 中的流水线操作(PostgreSQL 18)
数据库·人工智能·postgresql
enfpZZ小狗21 分钟前
使用Flask快速搭建轻量级Web应用
jvm·数据库·python
Geek攻城猫22 分钟前
深入理解 SQL 多字段排序:从基础到高级技巧
数据库·sql
洛_尘27 分钟前
MySQL 7:数据库设计
数据库·mysql
heze0934 分钟前
sqli-labs-Less-22
数据库·mysql·网络安全
墨雨晨曦881 小时前
如何保证redis和mysql数据一致性方案对比
数据库·redis·mysql
rfidunion1 小时前
springboot+VUE+部署(9。安装MySql)
spring boot·后端·mysql
枷锁—sha1 小时前
【Vulhub】Discuz! 7.2 faq.php SQL 注入深度复现手册 (转义逃逸篇)
数据库·sql·php
超级种码1 小时前
Redis:Redis 常见问题及解决思路
数据库·redis·缓存