#sql #presto
Вопрос:
Я хочу написать этот запрос в Presto:
SELECT
*
FROM (
SELECT GENERATE_SERIES(0, 30) days
)
Но в нем говорится, что функция GENERATE_SERIES не существует в Presto. Что я могу использовать вместо этого?
Ответ №1:
Вы можете использовать sequence
с unnest
:
SELECT days
FROM (SELECT sequence(0, 30) as d)
CROSS JOIN UNNEST (d) as t(days)
Комментарии:
1. thx, но затем я выбираю его: « ВЫБЕРИТЕ * ИЗ ( ВЫБЕРИТЕ GENERATE_SERIES(0, 30) дней ) КАК … ` И с вашим запросом это не сработает
2. @french_fries можете ли вы объяснить, что именно не работает для вас с предоставленным запросом? Вы можете использовать весь запрос в качестве подзапроса в своем.
3. в моем примере я могу сделать следующее: ВЫБЕРИТЕ * ИЗ ( ВЫБЕРИТЕ ПОСЛЕДОВАТЕЛЬНОСТЬ(0, 30) дней ) как q1, но не с вашим. это:
SELECT days FROM (SELECT sequence(0, 30) as d) CROSS JOIN UNNEST (d) as t(days) as q1
приводит к ошибке4. @french_fries, тогда ты это сделаешь
SELECT * FROM (SELECT days FROM (SELECT sequence(0, 30) as d) CROSS JOIN UNNEST (d) as t(days) ) as q1
. В чем проблема? Весь запрос предназначен для использования в качестве аналогаGENERATE_SERIES