我有一张桌子:
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
和assets_products
答案 0 :(得分:1)
您要做的是crosstab
。
为此,您可以使用tablefunc
contrib和以下查询:
SELECT * FROM crosstab(
'SELECT product, asset, count FROM <your_table> ORDER BY 1, 2')
AS (product text, asset_x int, asset_y int);