如何基于Hive中的其他列代码计算列

时间:2019-01-23 14:21:35

标签: if-statement hive group-by sum

enter image description here

我们有一个销售表,具有不同的销售金额和销售代码。我想根据不同的代码来计算销售总额。

公式为:销售总额=代码1-代码2 +代码3-代码4。

如何通过配置单元查询获取结果?

1 个答案:

答案 0 :(得分:0)

这可以通过条件聚合来完成(假设每个代码的每个ID都有一行)。

select id 
      ,coalesce(max(case when code = 'code1' then cast(amount as int) end), 0) -
       coalesce(max(case when code = 'code2' then cast(amount as int) end), 0) +
       coalesce(max(case when code = 'code3' then cast(amount as int) end), 0) -
       coalesce(max(case when code = 'code4' then cast(amount as int) end), 0) 
from tbl
group by id