我正在尝试在AWS Athena上运行查询
SELECT t1.col1,
t1.col2,
t2.col2,
t2.col3
FROM "db"."table1" AS t1
INNER JOIN "db2"."table2" AS t2
ON t1.col2 = t2.col2
GROUP BY t1.col1, t2.col3
HAVING COUNT(1) = 1 LIMIT 10;
但出现错误
SYNTAX_ERROR:第2:10行:““ t1”。“ col2”'必须是聚合 表达式或出现在GROUP BY子句中
有什么方法可以禁用AWS Athena中的 ONLY_FULL_GROUP_BY 或对部分选择列执行GROUP BY。
谢谢。
答案 0 :(得分:1)
我对AWS Athena一无所知,但是即使您禁用了ONLY_FULL_GROUP_BY(无论如何),您似乎仍然可能会遇到问题。
您收到了SYNTAX错误-因为您没有按照t1.col2
和t2.col2
进行汇总。在SQL中,您必须 group by
不属于聚合函数 的每一列。看到此答案的原因:
Why do we need GROUP BY with AGGREGATE FUNCTIONS?
此外,您可能希望在查询时重新检查-您没有select
使用任何聚合函数(count, avg
等),但是您正在尝试group
结果。