Hive中除了窗口函数外的常用函数:casewhen,行转列,列转行

本文介绍了Hive中的一些常用函数,包括使用`show functions`和`desc function`查看及描述函数,NVL替代NULL的用法,CASE WHEN进行条件判断,以及如何通过`concat`、`CONCAT_WS`进行行转列操作。还提到了`collect_set`和`collect_list`在数组去重和汇总中的应用,以及`split`和`explode`在列转行过程中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、关于使用函数的一些小方法

  1. 显示系统自带所有函数
    show functions;
  2. 描述指定函数的作用
    desc function 函数名;
  3. 描述函数的详情信息(一般是都是有例子的)
    desc function extended 函数名;

二、函数NVL,相当于mysql中的lfnull
格式:NVL(列表名,用来替换null的值)

三、case when
格式:
case 列表名 when 表中的一个值 then 替代他的值 else 另外一个值 end
总体类似于三元运算符
如一列性别的数据均为男女,可以改写为
sum(case sex when ‘男’ then 1 else 0 end) male_count,
sum(case sex when ‘女’ then 1 else 0 end) female_count
用来分别计算男女数目

四,行转列,连接多列变成一列
concat
1,select concat(empno,’-’,ename,’-’,sal,’-’,deptno) from emp; 可以自己设置连接符

2,CONCAT_WS(separator, str1, str2,…):它是一个特殊形式的 CONCAT()。第一个参数剩余参数间的分隔符。分隔符可以是与剩余参数一样的字符串。如果分隔符是 NULL,返回值也将为 NULL。这个函数会跳过分隔符参数后的任何 NULL 和空字符串。分隔符将被加到被连接的字符串之间;
注意:CONCAT_WS must be “string or array”

3,collect_set(对结果集去重):函数只接受基本数据类型,它的主要作用是将某字段的值进行去重汇总,产生array类型字段。
collect_list(不对结果集去重):函数只接受基本数据类型,它的主要作用是将某字段的值进行不去重汇总,产生array类型字段。
注,是对某字段

可以通过collect_set或者collect_list

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值