#presto
#presto
Вопрос:
Я пытаюсь создать таблицу presto, используя множественное объединение all в sql, в результате чего оператор слишком большой (переполнение стека во время анализа)
выберите 1 в качестве идентификатора, ‘x’ в качестве объединения имен all выберите 2 в качестве идентификатора, ‘x’ в качестве объединения имен all
—
выберите 1000 в качестве идентификатора, ‘x’ в качестве имени
Ответ №1:
Укажите, что x
похоже на неизменяемое статическое значение для name, вы могли бы попробовать использовать последовательность здесь:
WITH cte AS (
SELECT s.n AS id, t.name
FROM (SELECT 'x' AS name) t
CROSS JOIN UNNEST(sequence(1, 1000)) s(n)
)
При этом, если бы вы хотели придерживаться вашего текущего подхода к объединению методом грубой силы, вы могли бы сократить длину, удалив as name
псевдоним в каждом выборе. Вам нужно указать этот псевдоним только один раз, поэтому я предлагаю попробовать:
WITH cte AS (
SELECT 1 as id, 'x' AS name UNION ALL
SELECT 2, 'x' UNION ALL -- no aliases needed from here onwards
...
SELECT 1000, 'x'
)
Комментарии:
1. Значение ‘X’ изменится. Я пытался удалить псевдоним в каждом выборе и указывал только один раз. Это не сработало.