Sql Postgres交叉表和聚合在一起
我有一张表Sql Postgres交叉表和聚合在一起,sql,postgresql,crosstab,data-analysis,Sql,Postgresql,Crosstab,Data Analysis,我有一张表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 product_id 17 18 19 ... About 30 entries purchase_date|pr
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
product_id
17
18
19
... About 30 entries
purchase_date|product_id_17|product_id_18|product_id_19|product_id...
2016-02-04 | 2 | 0 | 1 | ...
2016-02-05 | ...
还有一个表产品
,如下所示:
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
product_id
17
18
19
... About 30 entries
purchase_date|product_id_17|product_id_18|product_id_19|product_id...
2016-02-04 | 2 | 0 | 1 | ...
2016-02-05 | ...
我想做一个交叉表查询,以给出日期的总购买数量,以每个产品id为中心,如下所示:
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
product_id
17
18
19
... About 30 entries
purchase_date|product_id_17|product_id_18|product_id_19|product_id...
2016-02-04 | 2 | 0 | 1 | ...
2016-02-05 | ...
请注意,此表中的值不是取自任何记录,而是匹配的记录数之和。我相信这是可能的使用交叉表
和聚合,但还没有弄清楚如何做到这一点
- 做一个交叉表
- 汇总
- 同时
请注意,有关堆栈溢出的讨论交叉表的其他问题并没有解释如何进行交叉表和聚合 表-
create table prods(purchase_id int,purchase_date date,product_id int);
资料-
要获得所需的输出,您可以使用-
输出-
purchase_date product_id_17 product_id_19
------------- ------------- -------------
2016-02-04 2 1
2016-02-05 2 NULL
为澄清差异而编辑的@gurvindersingh可能重复