统计SQL查询

时间:2019-03-12 13:49:01

标签: sql postgresql statistics

我正在绘制一个统计图表,因此我需要获取数据,该图表在x轴上有12个月,每个月有3个状态部分,每个状态部分都显示其计数值。我想到了这样的sql:

SELECT status,count(*), created_date
FROM Profile
WHERE DATE_PART('MONTH', created_date ) = '6'
GROUP BY status

但是这个只是在一个月中获得每个需要的值,如果这样做,我必须做12次才能获得12个月的数据。所以我想在一个查询中获得12个月的数据,所以有没有人对此有解决方案?
这是我的数据表结构

  create table Profile (
        pro_id LONG not null primary key,
        created_date DATE null,
        status VARCHAR(75) null, // it just 3 status: applied, denied, processing
    );

1 个答案:

答案 0 :(得分:0)

按照@jarlh的建议,MCVE会更有用,但是在两行之间阅读时,我认为您正在寻找类似的东西。您需要按状态和月份分组才能报告您12个月中的每个月。

SELECT status
      ,DATE_PART('MONTH', created_date )
      ,count(*) as month_count
  FROM Profile
-- WHERE DATE_PART('MONTH', created_date ) = '6'
GROUP BY status
        ,DATE_PART('MONTH', created_date )