Impala-从一张表计算百分比

时间:2018-12-04 03:17:39

标签: sql bigdata impala dbeaver

我有这种表,命名为table_A

 Cust        Amount      Src_cust
  A           2000         B
  A           3000         C
  A           1000         B
  C           1000         B

结果

 Cust        Percentage  Src_cust
  A           50 %         B
  A           50 %         C
  C           100%         B

我想获取此类数据,我在查询中使用了impala,但无法获取百分比。

Select Cust,(Sum(Amount) * 100) /sum(sum(Amount)) over() as  percentage, Src_cust
from table_A 

这段代码给我结果:

Cust        Percentage  Src_cust
  A           0            B
  A           0            C
  C           0            B

请帮助。谢谢

1 个答案:

答案 0 :(得分:1)

您需要进行一些汇总。我认为正确的查询是:

select cust,
       sum(amount) * 100.0 /sum(sum(amount)) over (partition by cust) as  percentage, Src_cust
from table_A
group by cust, src_cust