hive中count和sum的区别是什么?

如题所述

首先,sum是对一个字段进行求和,hive中字段的类型一般是string或者int,如果是int当然没问题,如果是string类型但是全部是数字也没问题,如果包含一个字母sum出来将会是0.
假如有这样一张简单的表
user_id stringshop_id string
1234hello
12341234

么sum(user_id)的结果是2468,sum(shop_id)的结果是0.如果没有符合条件的记录,sum的返回值将是null,如
sum(case when user_id<1000 then shop_id
end)返回值将是null。但某些时候我没希望sum的结果如果没有符合条件的记录就返回0怎么办呢,可以用coalesce(shop_id,0)解
决这个问题。
count是对数据记录的条数进行统计,有一条符合的记录就是1,没有就是0.

前几天遇到这样一条sql语句,sum(case when
substr(gmt_receive_pay,0,13)='$cur_date $env.last_hour' then t2.total_fee end)
as hour_alipay_fee,
我知道这条语句当没有符合条件的记录时计算出来结果是null,但是我没有意识到这是一个bug,我们要的结果应该是0。检讨一下。
温馨提示:内容为网友见解,仅供参考
无其他回答

hive中count和sum的区别是什么?
首先,sum是对一个字段进行求和,hive中字段的类型一般是string或者int,如果是int当然没问题,如果是string类型但是全部是数字也没问题,如果包含一个字母sum出来将会是0.假如有这样一张简单的表 user_id stringshop_id string 1234hello 12341234 那 么sum(user_id)的结果是2468,sum(shop_id)的结果...

数据分析常用函数分享(一)
Count函数用于统计行数,对于电商数据分析计算客单价,只需将订单金额除以订单行数即可。Sum函数则用于求和,例如sum([字段A],[字段B])即可得到字段A和B的总和。在使用聚合函数时,有几个常见问题需要注意:在绘制图表时添加比值时,应使用sum(a)\/sum(b),而不是sum(a)\/b;求比值的和时,使用sum...

Hive面试题
Hive的四种By的区别在于:Sort By实现分区内有序;Order By实现全局排序,仅有一个Reducer;Distribute By类似MapReduce中的Partition,用于分区,并结合Sort By使用;Cluster By在Distribute by和Sort by字段相同时使用,除了具有Distribute by的功能外还兼具Sort by的功能,但排序仅限于升序。Hive优化策略包...

Hive sql - 常用窗口函数(万字超详解)
案例 02:当排序维度不存在重复时,即order by指定的字段,使用order by + 分析函数sum(),可以产生求整体累计数的效果。但是当order by指定的字段存在重复时,在不重复的数据中会产生累计效果,而在重复的数据中,会把整体的累计结果分配到每条重复的数据中。案例 03:当排序维度不存在重复时,即order...

数据分析师之——Hive SQL面试的n个问题之:行列转换、row_number、数据...
aggr`和`hive.groupby.skewindata`参数。2. 控制Map任务数量,如避免count(*)、sum(case ...)导致的Map任务过大。3. 使用sum代替count(distinct)来减少数据倾斜。4. 在join操作时,处理空值,如先join后union all处理空值和非空值。理解并掌握这些操作是数据分析师在Hive SQL面试中的重要准备。

hive的窗口函数?
具体场景包括:使用sum求解总访问量及用户明细;使用count查询用户总量及明细;使用max查询用户最大访问量及明细;使用min和avg查询用户平均访问量。此外,还可以按指定列进行分组的聚合计算,如求解不同年龄段总访问量总和、不同客户端总用户数、不同年龄段最大访问量。还可以进行指定列分组和排序的聚合...

Hive QL窗口函数总结(2)
本文主要总结了Hive QL窗口函数的基本概念、使用方法以及一些常见的骚操作。在Hive中,窗口函数允许我们针对特定数据集的子集进行操作,而不只是整个数据集。其核心概念包括窗口的定义、不同函数的使用方式以及窗口函数与普通聚合函数的区别。窗口的定义通过`over()`函数实现,包含分组、排序和窗口范围三个部分...

Hive窗口函数
在Hive环境中,窗口函数分为排序函数(如row_number(), rank())和聚合函数(如sum(), min(), count(), avg()),前者在窗口内排序,后者则在排序基础上进行窗口内聚合。例如,row_number()会为每个窗口内的记录分配一个序号,序号相同的部分进行求和,不同序号的元素则累加。窗口大小可以通过rows...

Hive学习笔记八:Hive函数入门
2. 用户自定义函数UDF、UDAF和UDTF是用户自定义函数的三大类别。UDF如round函数,用于简单计算;UDAF如count, sum等,执行聚合操作,如数据去重(collect_set(), collect_list());UDTF则产生类似表的结果,如explode函数实现一行转多行。案例:手机号加密UDF实际应用中,如需实现手机号的加密,首先明确...

Hive常用算子实现原理简述--MapReduce版
map阶段,将group by后的字段组合作为key,如果group by单字段那么key就一个。将group by之后要进行的聚合操作字段作为值,如要进行count,则value是1;如要sum另一个字段,则value就是该字段。shuffle阶段,按照key的不同分发到不同的reducer。注意此时可能因为key分布不均匀而出现数据倾斜的问题。reduce...

相似回答