【发布时间】:2020-12-02 15:13:15
【问题描述】:
我有一张桌子:
CREATE TABLE stats_test
(
id1 bigint,
id2 bigint,
date timestamp with time zone
);
还有里面的数据:
id1 | id2 | date
-----+-----+------------------------
1 | 2 | 2020-12-01 00:00:00+00
2 | 1 | 2020-12-01 00:00:00+00
3 | 4 | 2020-11-01 00:00:00+00
4 | 3 | 2020-11-01 00:00:00+00
1 | 3 | 2020-12-01 00:00:00+00
1 | 3 | 2020-11-01 00:00:00+00
通过这个查询,我得到了结果:
SELECT EXTRACT(YEAR FROM date), EXTRACT(MONTH FROM date),
COUNT(DISTINCT id1) AS unique_id1, COUNT(DISTINCT id2) AS unique_id2
FROM stats_test GROUP BY EXTRACT(YEAR FROM date), EXTRACT(MONTH FROM date);
date_part | date_part | unique_id1 | unique_id2
-----------+-----------+------------+------------
2020 | 11 | 3 | 2
2020 | 12 | 2 | 3
如何从按年和月分组的两列 (id1, id2) 的集合中获取具有计数唯一 ID 的另一列?
date_part | date_part | unique_id1 | unique_id2 | unique_both_ids
-----------+-----------+------------+------------+----------------
2020 | 11 | 3 | 2 |
2020 | 12 | 2 | 3 |
【问题讨论】:
标签: sql postgresql