【发布时间】:2014-04-24 03:34:40
【问题描述】:
这是我的 Hive 查询:
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 对其进行分组,但它总是返回一个错误(见下文),可以通过放入所有其他字段来修复该错误。我不知道这对表组织意味着什么,但是在这种情况下这样做之后,它给了我以下错误:
失败:SemanticException [错误 10025]:第 3:7 行表达式不在 GROUP BY 键 '2'
当我未能输入列名“key”时,我通常会遇到该错误,但是 key '2' 是从哪里来的,我该如何解决这个问题?
【问题讨论】:
-
你找到解决办法了吗?
-
我绕过它,但我从未找到解决方案。
-
如果您错过了 select 子句或 group by 中的任何列,显示的错误是否相同?