Hive 表达式不在 GROUP BY 键 'pat_dtl_start_dt' 中(状态 = 42000,代码 = 10025)

Posted

技术标签:

【中文标题】Hive 表达式不在 GROUP BY 键 \'pat_dtl_start_dt\' 中(状态 = 42000,代码 = 10025)【英文标题】:Hive Expression not in GROUP BY key 'pat_dtl_start_dt' (state=42000,code=10025)Hive 表达式不在 GROUP BY 键 'pat_dtl_start_dt' 中(状态 = 42000,代码 = 10025) 【发布时间】:2020-04-14 14:53:53 【问题描述】:

SQL 代码:

CREATE TABLE dev.new STORED AS orc tblproperties("orc.compress" = "SNAPPY") AS
SELECT pat_dtl_start_dt, individual_id, bdy_lctn_cd, prcdr_cd, trtmnt_cd, SUM(allw_amt)
FROM dev.old
GROUP BY pat_dtl_start_dt, individual_id, bdy_lctn_cd, prcdr_cd, trtmnt_cd;

错误信息:

错误:编译语句时出错:FAILED:SemanticException [错误 10025]:第 2:7 行表达式不在 GROUP BY 键“pat_dtl_start_dt”中(状态=42000,代码=10025)

我想我已经按键包含了组中的所有选定列。不知道为什么还会出现这种情况。

【问题讨论】:

【参考方案1】:

您的GROUP BY 看起来正确。 . .足够。我不明白为什么会导致该错误。

但是,您可能不希望 allw_amt 在其中。我猜这可以满足您的要求:

SELECT pat_dtl_start_dt, individual_id, bdy_lctn_cd, prcdr_cd, trtmnt_cd,
       SUM(allw_amt)
FROM dev.old
GROUP BY pat_dtl_start_dt, individual_id, bdy_lctn_cd, prcdr_cd, trtmnt_cd;

【讨论】:

以上是关于Hive 表达式不在 GROUP BY 键 'pat_dtl_start_dt' 中(状态 = 42000,代码 = 10025)的主要内容,如果未能解决你的问题,请参考以下文章

SQL:表达式不在 GROUP BY 键中

HSQLDB:原因:使用 MAX,但不使用 Group By,并获取 java.sql.SQLSyntaxErrorException:表达式不在聚合或 GROUP BY 列中:

#1055 - SELECT 列表的表达式不在 GROUP BY 子句中,并且包含非聚合列,这与 sql_mode=only_full_group_by 不兼容

表达式不在聚合或 GROUP BY 列中 异常

ORDER BY 子句的表达式 #1 不在 GROUP BY 子句中,并且包含非聚合列

SQLSTATE [42000]:语法错误或访问冲突:1055 SELECT 列表的表达式 #3 不在 GROUP BY 子句中并且包含非聚合