Быстрый взгляд, добавляющий вложенность в 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