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;
相关推荐
isNotNullX1 小时前
怎么理解ETL增量抽取?
数据库·数据仓库·etl·企业数字化
IT教程资源C1 小时前
(N_141)基于springboot,vue网上拍卖平台
mysql·vue·前后端分离·拍卖系统·springboot拍卖
谅望者1 小时前
数据分析笔记14:Python文件操作
大数据·数据库·笔记·python·数据挖掘·数据分析
l1t1 小时前
调用python函数的不同方法效率对比测试
开发语言·数据库·python·sql·duckdb
honortech1 小时前
MySQL 8 连接报错:Public Key Retrieval is not allowed
数据库·mysql
q***82911 小时前
MySQL--》如何通过选择合适的存储引擎提高查询效率?
数据库·mysql·adb
q***96581 小时前
MySql-9.1.0安装详细教程(保姆级)
数据库·mysql
2501_941111401 小时前
使用Scrapy框架构建分布式爬虫
jvm·数据库·python
倔强的石头_1 小时前
电科金仓在医院怎么用?从迁移到跑稳,聊点实在的
数据库
i***68322 小时前
PostgreSQL 中进行数据导入和导出
大数据·数据库·postgresql