-1

私はテーブルを持っています:

product   asset    count
 foo        x        1
 bar        x        0
 foo        y        2
 bar        y        1

これは短縮版です。約 80 のアセットと数百の製品があります。

SQL でこのテーブルをこのようなものに変えることは可能ですか?

product   asset x   asset y
foo          1         2
bar          0         1

productsこのデータは、 、 、assetsおよびの 3 つのテーブルから取得されていることに注意してください。assets_products

4

1 に答える 1

1

あなたがしたいことはcrosstab.

これを行うには、tablefunccontribと次のクエリを使用できます。

SELECT * FROM crosstab(
    'SELECT product, asset, count FROM <your_table> ORDER BY 1, 2')
    AS (product text, asset_x int, asset_y int);
于 2013-02-25T17:53:32.870 に答える