hive中count和sum的区别
上一篇 /
下一篇 2011-10-23 20:31:37
/ 个人分类:hadoop/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。检讨一下。
相关阅读:
- MySQL死锁问题实例分析及解决方法 (xin_晴, 2011-8-30)
- 教你如何利用MySQL学习MongoDB之数据存储结构 (xin_晴, 2011-9-05)
- 教你如何利用MySQL学习MongoDB之SQL语法 (xin_晴, 2011-9-05)
- MySQL管理员必备的十大工具盘点 (xin_晴, 2011-9-06)
- 教你如何利用MySQL学习MongoDB之授权和权限 (xin_晴, 2011-9-08)
- MySQL查询优化技术之使用索引 (xin_晴, 2011-10-09)
- 内部表和外部表的差别 (于歌, 2011-9-30)
- 教你如何利用MySQL学习MongoDB之导入和导出 (xin_晴, 2011-10-08)
- hive分享一些小问题 (于歌, 2011-10-09)
- 教你如何利用MySQL学习MongoDB之备份和恢复 (xin_晴, 2011-10-20)
收藏
举报
TAG:
hive
MySQL
mysql
count
sum