问题描述:
如下图,云南订单占比=云南订单数/总订单数据,正常情况下,占比=348/4987=6.98%,但是这里却显示为0.00%:
其中,“云南订单数”的计算公式为:count(distinct(case when [shipping_area] = '云南' then [order_id] end))
总订单数的公式为:count(distinct([order_id]))
云南订单占比为两者相除:
产生原因:
这个是GP(Greenplum)数据库的特性,两个整数相除,小数点会直接约掉,比如等于0点几,都会变成0。
解决方案:
需要把其中一个字段转换成float格式:cast(count(distinct([order_id])) as float)
此时,占比显示正常: