复制行值N次Redshift

时间:2018-08-28 19:52:52

标签: amazon-redshift

我有结构为“位置”,“值”的数据。无论“值”列如何,我都希望该位置显示为单独的行。

例如:A, 500是一行,并且我希望“ A”显示为500个不同的行。

1 个答案:

答案 0 :(得分:0)

这可以使用数字表和范围联接来完成。

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