Postgresql 将查询合并为一个查询
我有两个返回不同结果的查询,我想合并它们,但我仍在学习如何在postgreSQ中编写,所以我在这方面遇到了一些困难。我的问题是:Postgresql 将查询合并为一个查询,postgresql,Postgresql,我有两个返回不同结果的查询,我想合并它们,但我仍在学习如何在postgreSQ中编写,所以我在这方面遇到了一些困难。我的问题是: 这一个返回到当前月份的所有月份的列表 这一个返回一个月内有多少人注册的计数。但这只返回了月份不为零的月份 预期结果或我需要的是一个如下表: monthly | count ----------------------------------- 2019-01-01 00:00:00+00 | 3 2019-02-01 00:00:00
monthly | count
-----------------------------------
2019-01-01 00:00:00+00 | 3
2019-02-01 00:00:00+00 | 1
2019-03-01 00:00:00+00 | 0
2019-04-01 00:00:00+00 | 1
2019-05-01 00:00:00+00 | 0
..etc
非常感谢。这并没有给我所有的月份,但我只是把where语句移到了左边的JOIN,它起了作用,所以谢谢你的帮助!!正确的。缺少的行中没有组id。我会为下一个路过的人更新答案。
SELECT date_trunc('MONTH', (date_signed_up::date)) AS monthly, count(id) AS count FROM customer
WHERE group_id = 1
GROUP BY monthly
ORDER BY monthly asc
EXAMPLE:
monthly | count
-----------------------------------
2019-01-01 00:00:00+00 | 3
2019-02-01 00:00:00+00 | 1
2019-04-01 00:00:00+00 | 1
monthly | count
-----------------------------------
2019-01-01 00:00:00+00 | 3
2019-02-01 00:00:00+00 | 1
2019-03-01 00:00:00+00 | 0
2019-04-01 00:00:00+00 | 1
2019-05-01 00:00:00+00 | 0
..etc
SELECT period monthly, count(id) count
FROM generate_series('2019-01-01', now(), '1 month') p (period)
LEFT JOIN customer
ON p.period = date_trunc('MONTH', (date_signed_up::date)) AND group_id = 1
GROUP BY monthly
ORDER BY monthly asc