在聚合 table 的列中应用转换因子并使用另一个聚合 table 执行计算

Apply conversion factor in a column for an aggregated table and perform calculation with another aggregated table

我在 Hive 中有以下表格。是否可以通过单个查询完成所有这些操作? 以下操作在表中完成:

在表 1 中,基于 'center' 列的用户总数
在表 2 中:

  1. 每个中心代码(A1) 与不同的帐户相关联。
  2. 要应用于费用列的换算系数(应以卢比为单位)
  3. 然后求费用总额

输出应该是Result=sum[Expense in Rupees]/sum[Users#]

感谢任何形式的指导。

如果您也指定输出值,那将非常容易理解。对于您的问题,是的,您可以使用 CASE

在一个查询中实现转换
SELECT
  center,
  account,
  SUM(expenses)/SUM(users) AS result
FROM
 (
  SELECT
    t2.center AS center,
    t1.users AS users,
    CASE
     WHEN t2.currency = 'USD' THEN (t2.expenses*70)
     WHEN t2.currency = 'MYR' THEN (t2.expenses*17)
     WHEN t2.currency = 'AUD' THEN (t2.expenses*50)
     WHEN t2.currency = 'INR' THEN t2.expenses
     ELSE 'invalid'
    END AS expenses,
    t2.currency AS currency,
    t2.account AS account
  FROM
  table1 t1 
  JOIN 
  table2 t2 
  ON(t1.center=t2.center)
 ) joined_data
GROUP BY center,account
ORDER BY center,account

我没有对此进行测试,但它应该可以工作。在最坏的情况下,它可能会抛出一个小的语法错误,你应该能够处理它。 :)