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
ここで unnest 関数を使用できるかどうか、またどのように使用できるかはわかりません....
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
ここで unnest 関数を使用できるかどうか、またどのように使用できるかはわかりません....
はい-unestはあなたが望むものです(もちろん配列を取得したら)
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)