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)的主要内容,如果未能解决你的问题,请参考以下文章
HSQLDB:原因:使用 MAX,但不使用 Group By,并获取 java.sql.SQLSyntaxErrorException:表达式不在聚合或 GROUP BY 列中:
#1055 - SELECT 列表的表达式不在 GROUP BY 子句中,并且包含非聚合列,这与 sql_mode=only_full_group_by 不兼容
ORDER BY 子句的表达式 #1 不在 GROUP BY 子句中,并且包含非聚合列
SQLSTATE [42000]:语法错误或访问冲突:1055 SELECT 列表的表达式 #3 不在 GROUP BY 子句中并且包含非聚合