Hive函数之行转列
介绍三种常用函数,空字段赋值,行转列,case when,
一、NVL函数
空字段赋值,
语法:nvl(string1,replaceValue),当某值为空时调用,
二、case when
就相当于java中switch case,记得最后一定要加end,else就相当于java中的defalut
举例:
select dept_id,
sum(case sex when '男' then 1 else 0 end) male_count,
sum(case sex when '女' then 1 else 0 end) female_count
from emp_sex。
三、行转列
1、concat函数说明
语法:concat(string a, string b…):返回输入字符串连接后的结果,支持任意个输入字符串
举例: SELECT concat('abc', 'def') FROM src LIMIT 1; 结果: 'abcdef'
2、★concat_ws函数(重要的是他可以拼接数组)
语法:concat_ws(separator, str1, str2,...):它是一个特殊形式的 CONCAT()。第一个参数剩余参数间的分隔符。分隔符可以是与剩余参数一样的字符串。如果分隔符是 NULL,返回值也将为 NULL。这个函数会跳过分隔符参数后的任何 NULL 和空字符串。分隔符将被加到被连接的字符串之间;用分隔符拼接字符串或者是数组返回一个数组
举例:SELECT concat_ws('.', 'www', array('facebook', 'com')) FROM src LIMIT 1;
'www.facebook.com'
3、★★collect_set(字段名) (非常常用,是用来返回数组类型的)------产生array类型字段
函数只接受基本数据类型,它的主要作用是将某字段的值进行去重汇总,产生array类型字段。将多个字符转成array数组
Hive函数之行转列相关推荐
- SQL PIVOT函数进行 行转列
准备数据源 select TOP 3 F_ProtocolName as "名称",F_TotalFee as "费用" from CRM_Protocol 名 ...
- hive中实现行转列_Hive之行转列lateral view用法
一般写sql经常会遇到行转列或者列转行之类的操作,就像concat_ws之类的函数被广泛的使用,今天这个也是经常要使用的拓展方法. Lateral View 语法 描述 横向视图与用户定义的表生成函数 ...
- hive操作(行转列,列转行)
一.行转列 1.相关函数说明 CONCAT(string A/col, string B/col-):返回输入字符串连接后的结果,支持任意个输入字符串; CONCAT_WS(separator, st ...
- oracle中创建函数行变列,oracle decode 函数实现行转列
用decode函数,或者case when实现行转列 Oracle ----创建测试表create table student_score( name varchar2(20), subject va ...
- 经常用到的透视函数(行转列列转行)函数 PIVOT()UNPIVOT
说明: 工作中经常遇到一组or一条数据按照不同类型被分成多条数据,如 一条合同的分期还款账单按照不同类型被分成本金,利息,管理费等, 数据统计工作中,一条合同一期就会分成多条合同 如 实际工作中 常需 ...
- Oracle 使用Pivot函数 实现行转列碰到的问题
pivot 行转列 pivot行转列的时候,报错某个参数标识符无效 问题解决方法:尝试将结果集放到一个临时表,再使用pivot函数. 问题描述: 下面的sql中,select已经查出结果集,但加上pi ...
- oracle列传行函数,oracle行转列和列转行(pivot 和 unpivot 函数,wm_concat函数 )
create table demo(id int,name varchar(20),nums int); ---- 创建表 insert into demo values(1, '苹果', 1000) ...
- Oracle pivot函数动态行转列方法
起因 工作中遇到个问题,需要支持动态行转列,方便报表展示. 起初这样写:
- hive中实现行转列_漫谈数据仓库之拉链表(原理、设计以及在Hive中的实现)
全文由下面几个部分组成: 先分享一下拉链表的用途.什么是拉链表. 通过一些小的使用场景来对拉链表做近一步的阐释,以及拉链表和常用的切片表的区别. 举一个具体的应用场景,来设计并实现一份拉链表,最后并通 ...
最新文章
- DialogFragment 全屏显示
- WINCE下的MINGW交叉编译环境下内存崩溃地址的查找方法。
- 转载:使用 GNU Libtool 创建库
- js php 分段上传文件,php+js实现文件分块上传
- 推荐一本基于ASP.NET Core 3.1的实战来了
- emacs mysql_使用Emacs作为MySQL的客户端
- 人工智能(16)---长租公寓领域的智能硬件
- [原]sencha touch之carousel
- android 课堂讨论内容,Android端课堂交互应用研究与实现
- html仿真花卉代码,仿真鲜花幼儿园手工教案
- mysql运用实例_mysql应用实例
- Linux 下安装python3
- 【北京迅为】i.MX6ULL终结者RS232驱动测试RS485测试
- 自己整理的90分以上最新物联网技术导论期末选择填空大题总考点
- 笔记本装系服务器系统驱动,联想昭阳E4430A笔记本安装WINDOWS SERVER 2003 2008服务器版网卡驱动的问题...
- 部署企业的网络安全方案
- Windows10家庭版完美修改系统用户名
- 基带信号带宽与占空比的关系
- 仿iGoogle自定义首页模块拖拽效果
- 高富帅seajs使用示例及spm合并压缩工具露脸
热门文章
- 图示LDA主题模型(酒店评论数据演示)
- Within-sample variability-invariant loss for robust speaker recognition under noisy environments
- 轻松玩转iPhone 3GS(第三版)
- Unity3D导航网格,矩阵旋转,欧拉旋转
- pip 安装时报错Double requirement given: numpy==1.12.1....
- 麦克风声音小怎么设置 怎么调节麦克风声音
- 用QT实现软件与硬件绑定
- 利用数据与其他数据源
- 输了这四年你就输了一生
- 如何优雅判断属性值为空