2

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 関数を使用できるかどうか、またどのように使用できるかはわかりません....

4

2 に答える 2

3

はい-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)
于 2013-01-24T18:30:00.367 に答える