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
相关推荐
B站计算机毕业设计超人8 小时前
计算机毕业设计hadoop+spark旅游景点推荐 旅游推荐系统 旅游可视化 旅游爬虫 景区客流量预测 旅游大数据 大数据毕业设计
大数据·hadoop·爬虫·深度学习·机器学习·数据可视化·推荐算法
专注API从业者20 小时前
分布式电商系统中的API网关架构设计
大数据·数据仓库·分布式·架构
我要用代码向我喜欢的女孩表白1 天前
hive迁移补数脚本细粒度 表名-分区唯一键
数据仓库·hive·hadoop
隔壁老登1 天前
查询hive指定数据库下所有表的建表语句并生成数据字典
数据库·hive·hadoop
m0_748233642 天前
【分布式】Hadoop完全分布式的搭建(零基础)
大数据·hadoop·分布式
薇晶晶2 天前
如何安装Hadoop
大数据·hadoop·分布式
人类群星闪耀时2 天前
数据湖与数据仓库:初学者的指南
大数据·数据仓库·spark
一张假钞2 天前
MapReduce 读取 Hive ORC ArrayIndexOutOfBoundsException: 1024 异常解决
大数据·hive·mapreduce
python资深爱好者2 天前
Hive中的分区和桶的概念及其作用
数据仓库·hive·hadoop
Beekeeper&&P...3 天前
Spring Security,servlet filter,和白名单之间的关系
hive·spring·servlet