如何在AWS Athena中禁用ONLY_FULL_GROUP_BY模式

时间:2018-11-29 13:35:44

标签: amazon-athena presto

我正在尝试在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。

谢谢。

1 个答案:

答案 0 :(得分:1)

我对AWS Athena一无所知,但是即使您禁用了ONLY_FULL_GROUP_BY(无论如何),您似乎仍然可能会遇到问题。

您收到了SYNTAX错误-因为您没有按照t1.col2t2.col2进行汇总。在SQL中,您必须 group by不属于聚合函数 的每一列。看到此答案的原因: Why do we need GROUP BY with AGGREGATE FUNCTIONS?

此外,您可能希望在查询时重新检查-您没有select使用任何聚合函数(count, avg等),但是您正在尝试group结果。