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;
相关推荐
m0_675988231 小时前
Leetcode1728:猫和老鼠 II
linux·运维·数据库·算法·leetcode·python3
东方佑2 小时前
利用Python和SQLite进行数据处理与优化——从数据库操作到高级数据压缩
数据库·python·sqlite
Heris993 小时前
2.11 sqlite3数据库【数据库的相关操作指令、函数】
服务器·c语言·开发语言·网络·数据库·tcp/ip·sqlite
Elastic 中国社区官方博客3 小时前
如何在 Elasticsearch 中设置向量搜索 - 第二部分
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
智商不在服务器4 小时前
利用二分法进行 SQL 盲注
数据库·python·sql
明月看潮生4 小时前
青少年编程与数学 02-009 Django 5 Web 编程 07课题、数据迁移
数据库·python·青少年编程·django·编程与数学
txwtech4 小时前
QT使用QAbstractTableModel 0x8读取访问权限冲突
开发语言·数据库·qt
jay丿5 小时前
MYSQL数学函数
数据库·sql·mysql
小句6 小时前
Kafka 中基于 Segment 和 Offset 查找消息的过程
数据库·分布式·kafka
geovindu6 小时前
MVC(Model-View-Controller)framework using Python ,Tkinter and SQLite
数据库·sqlite·mvc