Как отключить режим ONLY_FULL_GROUP_BY в AWS Athena - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь выполнить запрос в 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

Можно ли каким-либо образом отключить ONLY_FULL_GROUP_BY в AWS Athena или выполнить GROUP BY для столбцов частичного выбора.

Заранее спасибо.

1 Ответ

0 голосов
/ 29 ноября 2018

Я ничего не знаю об AWS Athena, но похоже, что у вас все еще могут возникнуть проблемы, даже если вы отключите ONLY_FULL_GROUP_BY (что бы это ни было).

Вы получаете сообщение об ошибке SYNTAX - потому что выне агрегирует по t1.col2 и t2.col2.В SQL вы должны group by каждый столбец, который не является частью агрегатной функции.Посмотрите этот ответ, чтобы узнать, почему: Зачем нам нужен GROUP BY с AGGREGATE FUNCTIONS?

Более того, вы можете захотеть пересмотреть свой запрос - вы не select используете какую-либо статистическую функцию (count, avg и т. Д.), И все же вы пытаетесь group получить результаты.

...