我正在绘制一个统计图表,因此我需要获取数据,该图表在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
);
答案 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 )