HIVE实现pivot函数
pivot是一个非常实用的函数
PIVOT的格式:
SELECT [原表字段1,2,3…] FROM [表名]
AS [原表别名]
PIVOT( [聚合函数] ( [原表字段1] ) FOR [原表字段2] IN ( [原表2值1],[原表字段2值2]… ) ) AS [新表别名]
但是hive里面没有自带pivot函数,所以我们需要自己实现
首先创建一组数据
CREATE TABLE IF NOT EXISTS pivot_test(id INT ,province STRING ,time STRING ,gdp INT
)
COMMENT 'pivot_test';INSERT INTO pivot_test
VALUES (1,'山东省','q1',10),
(2,'山东省','q2',12),
(3,'山东省','q3',15),
(4,'山东省','q4',19),
(5,'浙江省','q1',12),
(6,'浙江省','q2',15),
(7,'浙江省','q3',18),
(8,'浙江省','q4',20);SELECT *
FROM pivot_test
;
数据如下
实现过程
SELECT province,SUM(IF(time='q1',gdp,NULL)) q1,SUM(IF(time='q2',gdp,NULL)) q2,SUM(IF(time='q3',gdp,NULL)) q3,SUM(IF(time='q4',gdp,NULL)) q4
FROM pivot_test
GROUP BY province
;
最终结果
province | q1 | q2 | q3 | q4 |
---|---|---|---|---|
山东省 | 10 | 12 | 15 | 19 |
浙江省 | 12 | 15 | 18 | 20 |
当然如果列目比较多的话,就会比较麻烦
HIVE实现pivot函数相关推荐
- 2021年大数据Hive(七):Hive的开窗函数
全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive的开窗函数 一.窗口函数 ROW_NUMBER,RANK ...
- Hadoop生态圈-hive编写自定义函数
Hadoop生态圈-hive编写自定义函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.
- Hadoop生态圈-Hive的自定义函数之UDF(User-Defined-Function)
Hadoop生态圈-Hive的自定义函数之UDF(User-Defined-Function) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 转载于:https://www.cnb ...
- hive 的udf 函数使用
1)依据课程讲解UDF编程案例,完成练习,总结开发UDF步骤,代码贴图,给予注释,重点 2)更改emp 表中名字的大写给为小写. 一:hive 的udf 函数: 1.1 hive UDF 函数概述: ...
- Hive 正则匹配函数 regexp_extract
Hive 正则匹配函数 regexp_extract 1.regexp_extract 语法: regexp_extract(string subject, string pattern, ...
- SQL语句行列转换两种方法 case ...when 和pivot函数应用
2019独角兽企业重金招聘Python工程师标准>>> SQL语句行列转换两种方法 case ...when 和pivot函数应用SQL语句行列转换两种方法 case ...when ...
- hive内置函数_flink教程flink modules详解之使用hive函数
modules概念 通过hive module使用hive函数 内置函数 自定义函数 sql 客户端的使用 原理分析和源码解析 实现 modules概念 flink 提供了一个module的概念,使用 ...
- hive udaf_Hive UDAF 函数的编写
UDAF是Hive中用户自定义的聚集函数,Hive内置UDAF函数包括有sum()与count(),UDAF实现有简单与通用两种方式,简单UDAF因为使用Java反射导致性能损失,而且有些特性不能使用 ...
- hive的row_number()函数
hive的row_number()函数 功能 用于分组,比方说依照uuid分组 组内可以依照某个属性排序,比方说依照uuid分组,组内按照imei排序 语法为row_number() over (pa ...
最新文章
- SVN commit,update用法
- 7月书讯:看风景的人
- httpclient高频请求
- Npm的配置管理及设置代理
- 【学术相关】研究生哪些行为可以在导师那超加分?你做到了吗?
- mysql数据库水平分割_数据库的水平分割和垂直分割
- 用php写的亲亲鲜花网站_php54鲜花销售网站
- Tomcat 异常关闭排查
- 阿里全资收购饿了么,估值 95 亿美元
- Internet Download Manager v6.41 Build 2
- PHP之封装梦网云通讯短信发送类
- 咪咕音乐播放器 ubuntu 安装详解
- 软件测试分为哪几个阶段?
- C++“准”标准库Boost学习指南(3):Boost.Utility
- 互联网+大赛作品_“颂中国力量 绘美好梦想”全市中小学生互联网+书画大赛作品展示(四)...
- 微信公众号自定义菜单创建
- 服务器进pe后找不到硬盘,进入PE后找不到硬盘的原因及解决方法
- sqlitespy可以打开MySQL吗_sqlitespy下载
- 电脑多久重装一次系统?这几点不注意亏大了!
- 一篇让你熟练掌握Java常用工具包(全网最全)
热门文章
- python怎么输入空行_python输入空行
- 52个数据可视化图表鉴赏,收藏!
- 使用tensorflow构建简单卷积神经网络
- java获取随机时间_java 随机时间
- android中启动广播,Android--启动广播(Broadcast)
- python安装gdal库
- 研究生论文写作规范(转载)
- 性能监视器PerfMon v2.0 是一个流氓的汉化版
- 西部广播电视杂志《西部广播电视》杂志社《西部广播电视》编辑部2022年第21期目录
- linux php oracle扩展_linux系统下php oracle扩展OCI8的安装与配置