【发布时间】:2017-05-12 07:28:27
【问题描述】:
我有一张这样的桌子purchases:
purchase_id|purchase_date|product_id
1 | 2016-02-04 | 17
2 | 2016-02-04 | 19
3 | 2016-02-04 | 17
... About 1 million entries
还有一个像这样的表products:
product_id
17
18
19
... About 30 entries
我想做一个交叉表查询,以给出日期的购买总数,以每个 product_id 为中心,如下所示:
purchase_date|product_id_17|product_id_18|product_id_19|product_id...
2016-02-04 | 2 | 0 | 1 | ...
2016-02-05 | ...
请注意,此表中的值不是取自任何记录,而是匹配的记录数的总和。我相信使用crosstab 和聚合可以做到这一点,但还没有弄清楚如何做到这一点。
- 这可以使用 Postgres 完成吗?
- 交叉表是正确的做法吗?
- 怎么样?
这里的独特之处在于我正在尝试:
- 做一个交叉表
- 做一个聚合
- 同时
请注意,Stack Overflow 上讨论交叉表的其他问题并未解释如何进行交叉表和聚合。
【问题讨论】:
-
@GurwinderSingh 编辑澄清差异
标签: sql postgresql crosstab data-analysis