Impala/Hive - 汇总调整代码的金额

Posted

技术标签:

【中文标题】Impala/Hive - 汇总调整代码的金额【英文标题】:Impala/Hive - Sum up the amount for Adjustment code 【发布时间】:2019-02-19 22:46:06 【问题描述】:

我有一个名为 REV 的 Impala 表,其中包含每个线代码的线代码和数量

+---------+------+
|wire_code| amt  |
+---------+------+
| abc     | 100  |
+---------+------+
| def     | 50   | 
+---------+------+
| ghi     | 250  |
+---------+------+
| jkl     | 300  |
+---------+------+

另一个表是FA,它有wire_code和Ajusted_wire_code。

+---------+------+
|wire_code|adj_wc|
+---------+------+
| abc     | def  |
+---------+------+
|  ghi    | jkl  |
+---------+------+

我需要调整 FA 表中作为 adj_wc 可用的线码数量。 例如:

“abc”在 FA 表中,并且它被调整为“def”,那么我的输出应该是 - 线代码“def”的数量如下所示(abc+def)。 “abc”金额将保持不变。

+---------+------+
|wire_code| amt  | 
+---------+------+
| abc     | 100  |  
+---------+------+
| def     | 150  |
+---------+------+
| ghi     | 250  |
+---------+------+
| jkl     | 550  |
+---------+------+

请在此查询中提供帮助。 提前致谢!

【问题讨论】:

【参考方案1】:

使用两个连接:

select r.wire_code, r.amt+coalesce(a.amt,0) as amt
  from REV r
       left outer join FA f on r.wire_code=f.adj_wc     --adjustments
       left outer join REV a on f.wire_code=a.wire_code --adjusted amount
;

【讨论】:

此查询对数据集有效。非常感谢! 我已经在实际数据集上测试了这个脚本,该数据集还有一列“报告行” - 我已经更新了相关问题。当我们有任何在两个电汇代码(wire_code 和 adj_wc)中都不常见的报告行时,就会使用此查询对其进行过滤。请帮助更新此查询以获取此类记录。 @ASaraf 请不要在接受答案后修改问题。请再创建一个问题。这有很多原因。第一 - 我不一定知道修改后问题的答案。第二,这简直是在浪费回答者的时间。请阅读以下内容:meta.***.com/questions/309237/… 将您的原始问题恢复到以前的版本+ 再创建一个问题。看,如果我是新的,我什至不会回答你的问题,你以后会更新它 抱歉编辑原始问题。我已将更改还原为原始版本。您能否帮助我更改此查询以获取新列。我将发布新问题。 请帮助解决新问题并提供更新的详细信息。 ***.com/questions/55376463/…

以上是关于Impala/Hive - 汇总调整代码的金额的主要内容,如果未能解决你的问题,请参考以下文章

订单头与订单行金额汇总

javascript树形汇总金额

实现自动进行金额汇总

实现主从块金额汇总

如何将产品的订单金额汇总为一行

如何汇总用户支付的所有金额