hive聚合函数

聚合函数是hive内置函数,聚合函数对一组数据进行计算,并返回单个值。

常用聚合函数

count 计数

  • count(*) --统计检索出的行的个数,包括NULL值的行
  • count(col) --返回指定列非空值个数
  • count(distinct col[, col_.]) --返回指定列不同的非空值的个数

sum 求和

  • sum(col) --col累计加和
  • sum(distinct col) --不同col值累计加和

max 最大值

  • max(col) --col中最大值

min 最小值

  • min(col) --col中最小值

avg 均值

  • avg(col) --col的平均值
  • avg(distinct col) --不同col值相加的平均值

collect_list/collect_set  

其返回值类型是 array 

  • collect_list(col) --对col列做归并计算,不去重
  • collect_set(col) --对col列做归并计算,去重

 

select name,collect_list(hobby) as hobby,collect_set(hobby) as distinct_hobby
from 
(
    select '李一' as name,'乒乓球' as hobby union all 
    select '李一' as name,'跑步' as hobby union all
    select '赵小小' as name,'铅球' as hobby union all
    select '赵小小' as name,'跑步' as hobby union all
    select '赵小小' as name,'跑步' as hobby
) t 
group by name;

结果:

+-------+-------------------+-----------------+--+
| name  |       hobby       | distinct_hobby  |
+-------+-------------------+-----------------+--+
| 李一    | ["乒乓球","跑步"]      | ["乒乓球","跑步"]    |
| 赵小小   | ["铅球","跑步","跑步"]  | ["铅球","跑步"]     |
+-------+-------------------+-----------------+--+
 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值