hive 行转列

行转列的常规做法是,group by+sum(if())【或count(if())】

建表:

复制代码
CREATE TABLE table2 (
    year INT,
    month INT,
    amount DOUBLE
);

INSERT INTO table2 (year, month, amount) VALUES
    (1991, 2, 1.2),
    (1991, 3, 1.3),
    (1991, 4, 1.4),
    (1992, 1, 2.1),
    (1992, 2, 2.2),
    (1992, 3, 2.3),
    (1992, 4, 2.4);

查询:

首先建立子查询

复制代码
select *,
    if(month=1,amount,0) as a,
    if(month=2,amount,0) as b,
    if(month=3,amount,0) as c,
    if(month=4,amount,0) as d
from table2

然后分组求和一下:

复制代码
select year,sum(a) as m1,
     sum(b)as m2,
     sum(c) as m3,
     sum(d) as m4
from
(
select *,
    if(month=1,amount,0) as a,
    if(month=2,amount,0) as b,
    if(month=3,amount,0) as c,
    if(month=4,amount,0) as d
from table2
 )t1
 group by year

****2.腾讯游戏

首先建表

复制代码
CREATE TABLE table3 (
    ddate varchar(20),
    shengfu varchar(20)
);
insert INTO table3  values ('2015-05-09', "胜"),
('2015-05-09', "胜"),
('2015-05-09', "负"),
('2015-05-09', "负"),
('2015-05-10', "胜"),
('2015-05-10', "负"),
('2015-05-10', "负");

查询

复制代码
select ddate,
SUM(case when shengfu = '胜' then 1 else 0 end) `胜`,
SUM(case when shengfu = '负' then 1 else 0 end) `负`
from table3
group by ddate
相关推荐
注塑机数据采集联网14 小时前
数据采集网关入门:ZK-D1/D3从零开始构建你的数据运用
大数据·数据仓库·人工智能·物联网·数据库架构·注塑机网关
测试盐19 小时前
spark作业日志定位过程
java·hadoop·spark
roman_日积跬步-终至千里20 小时前
【数据建模入门】从一家小店看懂数仓与机器学习:先理业务,再串技术
数据仓库·人工智能·机器学习·数据分析·数据建模
步行cgn20 小时前
为什么既要 web.xml 又要 springmvc.xml?能不能只配一个?
xml·前端·hive
程序员梅雨2 天前
【从零开始学习数据仓库 | 第二篇】: 拉链表 & 数仓分层
大数据·数据仓库·学习
NiceZack2 天前
Hadoop 部署全流程教程:从新装 CentOS 到伪分布式与完全分布式
hadoop·分布式·centos
roman_日积跬步-终至千里2 天前
数仓开发的三层责任:业务定义、模型设计与 SQL 实现
数据库·数据仓库·sql·数据建模
@小匠2 天前
Flink + Iceberg 批量失败复盘:一次超时如何变成 Hive Metastore 锁泄漏
大数据·hive·flink
geovindu3 天前
SQL Data Sampling and Approximation Techniques using postgreSQL 18
大数据·数据库·数据仓库·sql·postgresql·数据库开发·数据库架构
skywalk81633 天前
hive —— 多机 AI Agent 协同的任务总线:分布式,多节点同时运行,保障不会宕机
人工智能·hive·分布式