首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Postgresql组,月份wise,缺少值

Postgresql组,月份wise,缺少值
EN

Stack Overflow用户
提问于 2014-06-11 06:41:19
回答 1查看 2K关注 0票数 4

首先是我的表格的一个例子:

代码语言:javascript
复制
id_object;time;value;status
1;2014-05-22 09:30:00;1234;1
1;2014-05-22 09:31:00;2341;2
1;2014-05-22 09:32:00;1234;1
...
1;2014-06-01 00:00:00;4321;1
...

现在,我需要按月计算status=1和id_object=1的所有行。这是我的疑问:

代码语言:javascript
复制
SELECT COUNT(*)
FROM my_table
WHERE id_object=1
  AND status=1
  AND extract(YEAR FROM time)=2014
GROUP BY extract(MONTH FROM time)

此示例的结果是:

代码语言:javascript
复制
2
1

5月份2次,6月份1次,但我需要一个全部12个月的产出,也是没有数据的月份。对于这个例子,我需要这个输出:

代码语言:javascript
复制
0 0 0 0 2 1 0 0 0 0 0 0

寻求帮助。

EN

回答 1

Stack Overflow用户

发布于 2014-06-11 14:42:26

generate_series可以生成时间戳序列

代码语言:javascript
复制
select
    g.month,
    count(t)
from
    generate_series(
        (select date_trunc('year', min(t.time)) from t),
        (select date_trunc('year', max(t.time)) + interval '11 months' from t),
        interval '1 month'
    ) as g(month)
    left outer join
    t on
        t.id_object = 1 and
        t.status = 1 and
        date_trunc('month', t.time) = g.month
where date_trunc('year', g.month) = '2014-01-01'::date
group by g.month
order by g.month
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24156202

复制
相关文章

相似问题

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