【问题标题】:Impala/Hive - Sum up the amount for Adjustment codeImpala/Hive - 汇总调整代码的金额
【发布时间】: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  |
+---------+------+

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

【问题讨论】:

    标签: hive hiveql impala


    【解决方案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.stackoverflow.com/questions/309237/… 将您的原始问题恢复到以前的版本+ 再创建一个问题。看,如果我是新的,我什至不会回答你的问题,你以后会更新它
    • 抱歉编辑原始问题。我已将更改还原为原始版本。您能否帮助我更改此查询以获取新列。我将发布新问题。
    • 请帮助解决新问题并提供更新的详细信息。 stackoverflow.com/questions/55376463/…
    猜你喜欢
    • 2019-07-22
    • 1970-01-01
    • 2017-07-11
    • 2020-12-23
    • 1970-01-01
    • 2016-08-04
    • 1970-01-01
    • 2021-04-08
    • 1970-01-01
    相关资源
    最近更新 更多