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;
相关推荐
西瓜味儿的小志35 分钟前
Mysql的MVCC机制分析
数据库·mysql·面试
鸿永与1 小时前
『SQLite』SELECT语句查询数据
数据库·sqlite
鸿永与1 小时前
『SQLite』详解运算符
数据库·sqlite·内存数据库
等一场春雨1 小时前
linux wsl配置 redis远程连接
数据库·redis·缓存
唐梓航-求职中1 小时前
缓存-Redis-缓存更新策略-主动更新策略-Cache Aside Pattern,先删除缓存,还是先更新数据库?
数据库·redis·缓存
忧郁的蛋~2 小时前
C#数据库操作系列---SqlSugar完结篇
数据库·c#·asp.net
m0_548514772 小时前
大数据-240 离线数仓 - 广告业务 测试 ADS层数据加载 DataX数据导出到 MySQL
大数据·数据库·mysql
123yhy传奇2 小时前
【学习总结|DAY028】后端Web实战(部门管理)
java·学习·mysql·log4j·maven·mybatis·web
明明跟你说过3 小时前
MySQL 数据表与索引设计艺术:打造高效数据存取架构
数据库·mysql·database·big data
知识中的海王3 小时前
【已解决】Django连接mysql报错Did you install mysqlclient?
python·mysql·django