分享

presto除法小case

本帖最后由 pig2 于 2018-4-29 10:31 编辑

hive执行的效率达不到olap需求,我们这边是在hive外层套了presto实现效率提升的
我们使用的是0.196版本(目前最新版)
当我想统计一个店铺数据占比时发现结果为0:
语法:select sum(case when storecode = '15' then 1 else 0 end) / count(1) from orders;
但是同样的语句在hive中执行是ok的
经排查推测:两个value相除,至少有一个为浮点数返回结果才正确
select typeof(count(1)) from orders;   返回值:bigint
select 123 / 345 from orders limit 1;结果仍然为0
正确执行:
select sum(case when storecode = '15' then 1 else 0 end) / cast(count(1) as double) from orders;

已有(2)人评论

跳转到指定楼层
zhuqitian 发表于 2018-3-21 16:32:55

谢谢,好久不发帖了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条