【问题标题】:Hadoop ranking columnsHadoop 排名列
【发布时间】:2012-12-07 22:58:44
【问题描述】:

因此,我正在使用这些特定的列: customer_tokenmerchant_idmerchant_category_codetransaction_amount

我目前的查询是这样的:

SELECT customer_token, COUNT(transaction_amount), SUM(transaction_amount)
FROM transaction 
                     WHERE file_date>20121031 
                     and file_date<20121201
GROUP BY customer_token

我想在上面的查询中添加一个部分,在结果中,merchant_category_code 根据每个特定merchant_category_code 中的交易金额分为不同的列。结果如下所示:

customer_token、count(transaction_amount)、sum(transaction_amount)、count(merchant_category_code中的transaction_amount排名第1)、count(merchant_category_code中的transaction_amount排名第2)、count(merchant_category_code中的transaction_amount排名第3)等。 ..

然后是这个:

customer_token、count(transaction_amount)、sum(transaction_amount)、sum(merchant_category_code中的transaction_amount排名第1)、sum(merchant_category_code中的transaction_amount排名第2)、sum(merchant_category_code中的transaction_amount排名第3)等。 ..

但我不知道如何做到这一点,或者是否有可能。

【问题讨论】:

  • 我只使用蜂巢。我偶然标记了sql。我很抱歉。

标签: hadoop hive hiveql


【解决方案1】:

如果您事先知道merchant_category_code 的可能值是什么,您可以使用CASE 表达式:

SELECT customer_token,
       COUNT(transaction_amount),
       SUM(transaction_amount),
       COUNT(CASE WHEN merchant_category_code = 1 THEN transaction_amount END),
       COUNT(CASE WHEN merchant_category_code = 2 THEN transaction_amount END),
       COUNT(CASE WHEN merchant_category_code = 3 THEN transaction_amount END),
       ...
       SUM(CASE WHEN merchant_category_code = 1 THEN transaction_amount END),
       SUM(CASE WHEN merchant_category_code = 2 THEN transaction_amount END),
       SUM(CASE WHEN merchant_category_code = 3 THEN transaction_amount END),
       ...
  FROM transaction 
 WHERE file_date BETWEEN 20121101 AND 20121130
 GROUP
    BY customer_token
;

(或IF 表达式,如果您愿意的话;有关这两个的文档,请参阅the section titled "Conditional Functions" on the page "LanguageManual+UDF" in the Hive wiki)。

【讨论】:

  • 太棒了。非常感谢,帮了大忙。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-05
相关资源
最近更新 更多