zhuqitian 发表于 2018-3-21 15:32:23

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;

starrycheng 发表于 2018-3-21 15:55:01

顶一个,赞

zhuqitian 发表于 2018-3-21 16:32:55

starrycheng 发表于 2018-3-21 15:55
顶一个,赞

谢谢,好久不发帖了
页: [1]
查看完整版本: presto除法小case