Быстрый взгляд, добавляющий вложенность в SQL-запрос, который вызывает ошибки в Афине

Я пытаюсь создать очень простую визуализацию в Quicksight, и для этого я использую SQL-запрос в Quicksight,

SELECT COUNT(distinct uuid), day
FROM analytics.myTable
GROUP BY day

К сожалению, всякий раз, когда я запускаю этот запрос в Quicksight, он не работает из-за следующей ошибки

от клиента AWS Athena. SYNTAX_ERROR: строка 2:8: столбец '_col0' не может быть разрешен

Когда я смотрю в Афину, я вижу, что Quicksight "вкладывает" SQL-запрос... это то, что вызывает ошибку в Афине,

/* QuickSight 4da449cf-ffc6-11e8-92ea-9ffafcc3adb3 */
SELECT "_col0"
FROM (SELECT COUNT(distinct uuid)
FROM pregnancy_analytics.final_test_parquet) AS "DAU"

Что я не понимаю, так это: а) почему это означает ошибку? б) почему Quicksight вкладывает SQL?

Если я просто выполню команду прямо в Афине,

SELECT COUNT(distinct uuid) FROM analytics.myTable

Это действительно показывает имя столбца "_col0",

    _col0
1   1699174

поэтому тот факт, что Quicksight вызывает ошибку, на самом деле не должен быть проблемой.

Может кто-нибудь дать совет, как решить эту проблему?

Спасибо

1 ответ

Решение

Зачастую в программном обеспечении для визуализации вам нужно явно указывать имена ваших столбцов в агрегатном / функциональном выражении, так как они по умолчанию имеют такие вещи, как _col0, которые программа плохо анализирует, поэтому выдает эту ошибку.

В частности, я вижу это все время в Superset, используя Presto.

Для вашей проблемы явно, вы должны просто сделать то, что рекомендовал Петр, просто добавив имя после COUNT(distinct uuid) - Я неравнодушен к freq, но похоже, что вы захотите что-то вроде uuid или unique_uuid:)

Вы можете изменить запрос, чтобы явно назвать агрегированный столбец, и тогда запрос будет работать.

Пример:

SELECT COUNT(distinct uuid) as "distinct_uuid", day
FROM analytics.myTable
GROUP BY day
Другие вопросы по тегам