postgresql - 如何在'in'运算符中显示所有值?

时间:2015-01-29 15:24:12

标签: postgresql

我的查询是这样的:

select lvl_desc, fct.patient_age_group as Age_group,fct.client_id,
fct.geog_algn_id,USC_3_CODE, PAYMENT_TYPE ,patient_gender_desc,
SUM(nvl(Tot_Mkt,0)) as Tot_Mkt
FROM MY_FACT_TABLE fct
     inner join MY_DIM_TABLE geo on fct.client_id = geo.client_id 
                           and fct.geog_algn_id = geo.geog_algn_id 
                           and fct.lvl_desc = geo.geog_lvl_15_desc
WHERE fct.client_id = 10000 
and fct.geog_algn_id = 10000 
and geog_lvl_03_desc = 'BC'
and USC_3_CODE = 31000
AND PAYMENT_TYPE = 'BLA2'
AND patient_gender_desc = 'MALE'
AND patient_age_group in ('19-25','3-5', '30-34', '35-39')
and lvl_desc = 'BLA1'
GROUP BY fct.client_id,fct.geog_algn_id,lvl_desc,USC_3_CODE, PAYMENT_TYPE ,patient_gender_desc, patient_age_group
order by lvl_desc,age_group;

我的查询返回年龄组30-34和35-39的数据,因为事实表有数据。我想为缺少的年龄组3-5和19-25返回零(0)。 我怎样才能做到这一点?任何帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:0)

当您需要生成的数据范围(并使用左连接,获取{{}时,使用VALUES提供一组数据或一些set-returning function(如generate_series()) 1}}没有数据的地方):

NULL