首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将查询合并为一体

将查询合并为一体
EN

Stack Overflow用户
提问于 2019-06-18 20:16:35
回答 1查看 17关注 0票数 0

我有两个返回不同结果的查询,我想合并它们,但我仍然在学习如何用postgreSQ编写,所以我在做这件事时遇到了一些困难。我的问题是:

  1. 这一个返回一个列表的所有月份,直到现在的一个。
代码语言:javascript
复制
SELECT * FROM generate_series('2019-01-01', now(), '1 month')

EXAMPLE:

    generate_series 
------------------------ 
2019-01-01 00:00:00+00
2019-02-01 00:00:00+00
2019-03-01 00:00:00+00
2019-04-01 00:00:00+00
  1. 这一个返回一个统计数,多少人在这个月注册。但这一次只返回了月份不是零的部分。
代码语言:javascript
复制
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

预期的结果或我需要的是有一个这样的表格:

代码语言:javascript
复制
     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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-18 20:23:27

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56656460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档