2014-04-24 40 views
1

這裏是我的蜂巢查詢:如何在Hive中使用以下查詢中的GROUP BY函數?

INSERT OVERWRITE TABLE csp_filtered_data_table_b 
SELECT CSP_CPCODE, CSP_ACSKEYWORDS, CSP_TARIFF_CODE, CSP_ERROR_CODE, 
CONCAT(CSP_ARRAY_DATE[2], '-', 
(
CASE CSP_ARRAY_DATE[1] 
WHEN 'Jan' THEN '01' 
WHEN 'Feb' THEN '02' 
WHEN 'Mar' THEN '03' 
WHEN 'Apr' THEN '04' 
WHEN 'May' THEN '05' 
WHEN 'Jun' THEN '06' 
WHEN 'Jul' THEN '07' 
WHEN 'Aug' THEN '08' 
WHEN 'Sep' THEN '09' 
WHEN 'Oct' THEN '10' 
WHEN 'Nov' THEN '11' 
ELSE '12' 
END 
), '-', 
CSP_ARRAY_DATE[0]), 
SUBSTR(CSP_TRANSACTION_TIME_DATE, 13,23), 
CSP_MOBILE_NUMBER, 
WEEKOFYEAR(
CONCAT(CSP_ARRAY_DATE[2], '-', 
(
CASE CSP_ARRAY_DATE[1] 
WHEN 'Jan' THEN '01' 
WHEN 'Feb' THEN '02' 
WHEN 'Mar' THEN '03' 
WHEN 'Apr' THEN '04' 
WHEN 'May' THEN '05' 
WHEN 'Jun' THEN '06' 
WHEN 'Jul' THEN '07' 
WHEN 'Aug' THEN '08' 
WHEN 'Sep' THEN '09' 
WHEN 'Oct' THEN '10' 
WHEN 'Nov' THEN '11' 
ELSE '12' 
END 
), '-', 
CSP_ARRAY_DATE[0]) 
) 
FROM csp_formatted_date; 

現在,我應該得到由CSP_ERROR_CODE分組的結果。

因此,我增加了以下內容:

GROUP BY CSP_CPCODE, CSP_ACSKEYWORDS, CSP_TARIFF_CODE, CSP_MOBILE_NUMBER, CSP_ERROR_CODE; 

雖然我只需要通過CSP_ERROR_CODE組,它總是返回一個錯誤(如下圖所示),它可以通過將在所有其他領域進行固定。我不知道這是什麼意思爲表組織,但在這種情況下,正是這樣做之後,它給我以下錯誤:

FAILED: SemanticException [Error 10025]: Line 3:7 Expression not in GROUP BY key '2'

我經常遇到錯誤時,我沒有把列名「關鍵',但關鍵'2'來自哪裏,我該如何解決這個問題?

+0

您是否找到解決方案? – ubuntunoob

+0

我繞過它,但我從來沒有找到解決方案。 –

+0

如果您錯過了select子句或group by的任何列,顯示的錯誤是否相同? – tom

回答

相關問題