当前位置: 首页 > news >正文

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)t1group 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
http://www.lryc.cn/news/497179.html

相关文章:

  • Vue中使用ECharts图表中的阈值标记(附源码)
  • 【特征融合】融合空间域和频率域提升边缘检测能力
  • 深入理解AVL树:结构、旋转及C++实现
  • AUTOSAR AP 汽车API知识点总结(Automotive API )R24-11
  • 【HarmonyOS开发】超详细的ArkTS入门
  • Springboot(五十一)SpringBoot3整合Sentinel-nacos持久化策略
  • [go-redis]客户端的创建与配置说明
  • Qt入门7——Qt事件
  • CTF之密码学(仓颉编码)
  • 面向人工智能安全的多维应对策略
  • 考研英语翻译与大小作文
  • 视频监控汇聚平台Liveweb视频安防监控实时视频监控系统操作方案
  • 算法第一弹-----双指针
  • linux环境GitLab服务部署安装及使用
  • MotorCAD:定子绕组中的趋肤效应和邻近效应损耗
  • R语言机器学习论文(二):数据准备
  • FFmpeg:强大的音视频处理工具指南
  • NiFi-从部署到开发(图文详解)
  • Scala的条件匹配
  • 如何手搓一个智能激光逗猫棒
  • leetcode LCP 开幕式焰火
  • 使用GDI对象绘制UI时需要注意的若干细节问题总结
  • 51单片机(STC89C52RC版本)学习笔记(更新中...)
  • 七:仪表盘安装-controller node
  • C++设计模式之外观模式
  • 显卡(Graphics Processing Unit,GPU)比特币挖矿
  • 【SARL】单智能体强化学习(Single-Agent Reinforcement Learning)《纲要》
  • CSS 动画效果实现:图片展示与交互
  • 【机器学习】—Transformers的扩展应用:从NLP到多领域突破
  • Linux权限机制深度解读:系统安全的第一道防线