Impala - 从一张表计算百分比

Posted

技术标签:

【中文标题】Impala - 从一张表计算百分比【英文标题】:Impala - Calculate Percentage From One Table 【发布时间】:2018-12-04 03:17:38 【问题描述】:

我有这种表,命名为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】:

您需要在尝试中进行一些聚合。我认为正确的查询是:

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

【讨论】:

以上是关于Impala - 从一张表计算百分比的主要内容,如果未能解决你的问题,请参考以下文章

在 Impala 中查找百分比作为子查询

在 Impala DB 中创建表作为选择百分比子查询

SQL TRIGGER 更新时从一张表到另一张表

Impala find_in_set 用百分号匹配 LIKE

Excel VBA 将值从一张表移动到另一张表

如何计算百分比条件聚合