我正在尝试在PostgreSQL(8.4+)中使用所谓的“反向计数”。我希望输出的行数与每个字母在“总计”列中指定的行数完全相同。。。
表1:

letter | total
-------------
a | 3
b | 2
c | 4
d | 1

预期的表输出:
letter
-----
a
a
a
b
b
c
c
c
c
d

我不确定是否以及如何使用这里最不必要的功能。。。。

最佳答案

是的-不需要是你想要的(当然,一旦你有了一个数组)

richardh=> SELECT array_fill(letter, ARRAY[total]) FROM expand;
 array_fill
------------
 {a,a,a}
 {b,b}
 {c,c,c,c}
 {d}
(4 rows)

richardh=> SELECT unnest(array_fill(letter, ARRAY[total])) FROM expand;
 unnest
--------
 a
 a
 a
 b
 b
 c
 c
 c
 c
 d
(10 rows)

关于postgresql - Postgres“反向计数(*)”(嵌套?),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14507198/

10-15 21:26