与SQL表
问题描述:
回转轴我有一个表:与SQL表
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
答
你想要做什么是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);
+0
这里的问题是,我希望资产类型列由数据驱动。 – 2013-02-26 10:59:56
+0
@NeilMiddleton,所以唯一的解决方案似乎是动态生成查询,或者甚至在应用程序中动态地显示结果(看起来更好),因为PostgreSQL总是需要关于查询返回的列的信息。 – MatheusOl 2013-02-27 12:01:29
这可能吗?绝对是。 [你有什么尝试?](http://whathaveyoutried.com) – 2013-02-25 17:26:54