Честно говоря, самый простой способ выполнить такие задачи - создать электронную таблицу Excel, заполнить все нужные значения, сохранить ее как CSV, а затем использовать COPY для загрузки ее в Redshift. Это дает вам преимущество красивого интерфейса для создания данных без необходимости работать с SQL.
Причина, по которой вы получаете только одну строку, заключается в том, что SELECT обычно обрабатывает таблицу данных, возвращая один результат на строку входных данных. Вы не указали таблицу, поэтому она возвращает только одну строку.
К счастью, вы можете использовать generate_series()
в некоторых ситуациях для имитации данных:
SELECT
to_char(date '01-01-2017' + counter * interval '1 month','yyyy-MM') as plus30,
NULL,
0,
0,
0
FROM generate_series(1, 12) as counter
Создает:
2017-02 (null) 0 0 0
2017-03 (null) 0 0 0
2017-04 (null) 0 0 0
2017-05 (null) 0 0 0
2017-06 (null) 0 0 0
2017-07 (null) 0 0 0
2017-08 (null) 0 0 0
2017-09 (null) 0 0 0
2017-10 (null) 0 0 0
2017-11 (null) 0 0 0
2017-12 (null) 0 0 0
2018-01 (null) 0 0 0
(Ваш вопрос показал yyyy-MM
в SQL, но Mon-YY
в выходных данных, поэтому, пожалуйста, настройте его соответствующим образом. Обычно лучше использовать yyyy-MM
, потому что он легко сортируется как по числу, так и по строке.)