有没有人知道如何在PostgreSQL中创建交叉表查询?
例如,我有下表:
Section Status Count
A Active 1
A Inactive 2
B Active 4
B Inactive 5
Run Code Online (Sandbox Code Playgroud)
我想查询返回以下交叉表:
Section Active Inactive
A 1 2
B 4 5
Run Code Online (Sandbox Code Playgroud)
这可能吗?
我的 PostgreSQL 9.2.8 数据库中有这三个表的表结构:
我试图弄清楚如何选择orders一行并在同一行上添加来自order_points和 的一些列points。
您可以将该points表想象为一个人可以购买的所有物品的列表,其中 内部知道abbrev它并且它的成本为amount。
该order_points表是购买的每件商品,因此points.id == order_points.points_id,amount类似于说他们购买了 5 个糖果棒。它通过以下方式链接到订单order_points.order_id == orders.id
当我选择一个订单时,我希望为每个abbrev存在的以及amount来自order_points表的列都有一列。
所以如果points有这个:
id | name | abbrev | amount
--------------------------------
1 | Snickers | sn | 1.34
2 | Milky Way | mw | 1.73
3 | Coffee | cf | 10.12
Run Code Online (Sandbox Code Playgroud)
并order_points有这个:
id | order_id …Run Code Online (Sandbox Code Playgroud) 我有一个看起来像这样的数据集:
我想将所有co值汇总在一行中,因此最终结果如下所示:
看起来很容易,对吧?只需crosstab按照本答案中的建议使用 编写查询。问题是这要求我CREATE EXTENSION tablefunc;和我没有对我的数据库的写访问权限。
谁能推荐一个替代方案?