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;
相关推荐
少云清几秒前
【接口测试】3_PyMySQL模块 _连接数据库
数据库·pymysql·代码实现
lkbhua莱克瓦245 分钟前
基础-SQL-DML
开发语言·数据库·笔记·sql·mysql
herinspace28 分钟前
管家婆网店ERP如何录入成本调价单
服务器·数据库·oracle·智能手机·电脑
短剑重铸之日30 分钟前
7天读懂MySQL|Day 1: MySQL 架构全景
数据库·mysql·架构
醉风塘42 分钟前
MongoDB高级查询全攻略:使用MongoTemplate实现分组、排序、分页与连表查询
数据库·mongodb
路西法011 小时前
# CentOS系统yum方式安装MySQL
linux·mysql·centos
蜂蜜黄油呀土豆1 小时前
MySQL 事务隔离级别与 MVCC 深度解析
mysql·innodb·mvcc·事务隔离级别·幻读
luoluoal1 小时前
基于python的des知识图谱的百科知识问答平台(源码+文档)
python·mysql·django·毕业设计
TG:@yunlaoda360 云老大1 小时前
如何确保华为云国际站代理商的服务可用性?
数据库·人工智能·华为云
又是忙碌的一天1 小时前
Myvatis 动态查询及关联查询
java·数据库·mybatis