【发布时间】:2018-01-22 11:34:52
【问题描述】:
我正在尝试使用表中的子查询针对 hive 中另一个表的每一行来获取聚合结果。我知道 hive 不支持 SELECT 子句中的子查询,所以我试图在 FROM 子句中使用子查询,但似乎 hive 也不支持相关子查询。
这是示例:表 A 包含具有日期列(d1 和 d2)和货币列以及其他列的帐户交易数据,我想要做的是获取表 B 中的汇率值的总和(其中每个帐户的日期 d1 和 d2 之间包含一年中每一天的货币汇率。我正在尝试这样的事情:
SELECT
account_no, currn, balance,
trans_date as d2, last_trans_date as d1, exchng_rt
FROM
acc AS A,
(SELECT sum(rate) exchng_rt
FROM currency
WHERE curr_type = A.currn
AND banking_date BETWEEN A.d1 AND A.d2) AS B
这里是示例,表 A 的帐户交易和日期如下:
account balance trans_date last_trans_date currency
abc 100 20-12-2016 20-11-2016 USD
abc 200 25-12-2016 20-12-2016 USD
def 500 15-11-2015 10-11-2015 AUD
def 600 20-11-2015 15-11-2015 AUD
表 B 是这样的:
curr_type rate banking_date
USD 50.9 01-01-2016
USD 50.2 02-01-2016
USD 50.5 03-01-2016
AUD 50.9 01-01-2016
AUD 50.2 02-01-2016
AUD 50.5 03-01-2016 and so on...
所以表格包含每种货币的每日汇率
【问题讨论】:
-
编辑您的问题并提供示例数据和所需结果。