如何处理蜂巢组中的硬编码值
How to handle hard coded values in hive group by
我 运行 遇到了这样的问题,但遇到了错误。我是否必须在单独的查询中创建该字段,以便我可以调用该字段而不是硬编码值,或者是否有另一种方法可以解决这个问题而不需要额外的步骤?
SELECT FIELD_A
, 'NA' AS FIELD_B
, 'NA' AS FIELD_C
, MAX(PRICE) AS MAX_PRICE
from table_xyz
GROUP BY field_a
, 'NA'
, 'NA'
;
错误:
OK FAILED: SemanticException [Error 10021]: Line 74:2 Repeated key in GROUP BY ''NA''
您可以使用 common table expression
来执行此操作。
with t1 as
(SELECT FIELD_A
, 'NA' AS FIELD_B
, 'NA' AS FIELD_C
, PRICE
from table_xyz)
select field_a, field_b, field_c, max(price) from t1
group by field_a, field_b, field_c
或者你可以简单地做
SELECT FIELD_A
, 'NA' AS FIELD_B
, 'NA' AS FIELD_C
, MAX(PRICE) AS MAX_PRICE
from table_xyz
GROUP BY field_a, 'NA'
因为 field_b
和 field_c
都是 NA
。
您可以从组中删除 'NA' 是多余的。
SELECT FIELD_A
, 'NA' AS FIELD_B
, 'NA' AS FIELD_C
, MAX(PRICE) AS MAX_PRICE
from table_xyz
GROUP BY field_a
我 运行 遇到了这样的问题,但遇到了错误。我是否必须在单独的查询中创建该字段,以便我可以调用该字段而不是硬编码值,或者是否有另一种方法可以解决这个问题而不需要额外的步骤?
SELECT FIELD_A
, 'NA' AS FIELD_B
, 'NA' AS FIELD_C
, MAX(PRICE) AS MAX_PRICE
from table_xyz
GROUP BY field_a
, 'NA'
, 'NA'
;
错误:
OK FAILED: SemanticException [Error 10021]: Line 74:2 Repeated key in GROUP BY ''NA''
您可以使用 common table expression
来执行此操作。
with t1 as
(SELECT FIELD_A
, 'NA' AS FIELD_B
, 'NA' AS FIELD_C
, PRICE
from table_xyz)
select field_a, field_b, field_c, max(price) from t1
group by field_a, field_b, field_c
或者你可以简单地做
SELECT FIELD_A
, 'NA' AS FIELD_B
, 'NA' AS FIELD_C
, MAX(PRICE) AS MAX_PRICE
from table_xyz
GROUP BY field_a, 'NA'
因为 field_b
和 field_c
都是 NA
。
您可以从组中删除 'NA' 是多余的。
SELECT FIELD_A
, 'NA' AS FIELD_B
, 'NA' AS FIELD_C
, MAX(PRICE) AS MAX_PRICE
from table_xyz
GROUP BY field_a