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;
相关推荐
API_technology43 分钟前
高并发场景下的淘宝 API 开发实践:商品数据实时采集与性能优化
大数据·数据库·性能优化·数据挖掘
{⌐■_■}3 小时前
【MySQL】Read view存储的机制,记录可见分析
数据库·mysql
极限实验室7 小时前
Easysearch Rollup 相比 OpenSearch Rollup 的优势分析
数据库
道友老李7 小时前
MySQL性能调优(三):MySQL中的系统库(mysql系统库)
数据库·mysql
陈璆鸣8 小时前
【java+Mysql】学生信息管理系统
java·mysql·用户登录·学生信息·成绩信息
和尚用0飘柔08 小时前
【中间件】redis使用
数据库·redis·中间件
结衣结衣.9 小时前
【MySQL】数据类型
linux·数据库·sql·mysql
辰哥单片机设计9 小时前
雨滴传感器详解(STM32)
数据库·mongodb
努力也学不会java10 小时前
【Redis】Redis中的常见数据类型(一)
数据结构·数据库·redis·缓存·bootstrap
XY.散人10 小时前
初识Redis · 命令、数据结构补充、协议
数据库·redis·缓存