Дублирование значения строки N количество раз Redshift - PullRequest
0 голосов
/ 28 августа 2018

У меня есть данные, которые структурированы как «местоположение», «значение». Я бы хотел, чтобы местоположение отображалось в виде отдельной строки для любого столбца «значение».

Например: A, 500 - это одна строка, и я хочу, чтобы буква «А» отображалась как 500 разных строк.

1 Ответ

0 голосов
/ 05 сентября 2018

Это можно сделать с помощью таблицы чисел и объединения диапазонов.

CREATE TEMP TABLE numbers AS 
SELECT ROW_NUMBER() OVER() as "number"
FROM stl_scan
LIMIT 10;

CREATE TEMP TABLE data AS
SELECT 'a' value, 3 occurence
UNION ALL
SELECT 'b' value, 6 occurence;

SELECT data.value
      ,numbers.number instance
FROM data
JOIN numbers
ON data.occurence >= numbers.number
ORDER BY 1,2;

выход

 value | instance
-------+----------
 a     |        1
 a     |        2
 a     |        3
 b     |        1
 b     |        2
 b     |        3
 b     |        4
 b     |        5
 b     |        6
...