我的要求是使用Amazon-redshift查询填充缺少月份的数据。
使用以下查询填充以下数据
SELECT CASE
WHEN data.country = '' THEN 'DEFAULTVALUE'
ELSE UPPER(data.country)
END AS country_name,
product.product_client AS brand,
product.product_name,
geography.brick,
product.product_id,
product.period,
units
FROM rdb.tgt_ims_mktshare_data data
INNER JOIN dwh.DMN_GEOGRAPHY geography
ON UPPER (data.country) = UPPER (COALESCE (geography.country_name,'DEFAULTVALUE'))
AND UPPER (data.study) = UPPER (COALESCE (geography.study,'DEFAULTVALUE'))
AND UPPER (COALESCE (data.geo_lowest_level,'DEFAULTVALUE')) = UPPER (COALESCE (geography.brick,'DEFAULTVALUE'))
AND UPPER (DECODE (data.Prescription_Origin,'','DEFAULTVALUE',data.Prescription_Origin)) = UPPER (COALESCE (geography.Prescription_Origin,'DEFAULTVALUE'))
INNER JOIN dwh.DMN_PRODUCT_EMEA product
ON UPPER (data.country) = UPPER (COALESCE (product.country_name,'DEFAULTVALUE'))
AND UPPER (product.product_name) = UPPER (COALESCE (data.product,'DEFAULTVALUE'))
AND UPPER (COALESCE (NULLIF (product.pack_name,''),'DEFAULTVALUE')) = UPPER (COALESCE (NULLIF (data.pack,''),'DEFAULTVALUE'))
LEFT OUTER JOIN dwh.DMN_TIME period ON period.period::DATE = data.period::DATE
ORDER BY period DESC
以下是示例源数据:
预期的输出是在任何时候我们都应该拥有所有月份的数据。如果一个月中没有任何产品,那么我们必须在产品中填充零“ 0”作为单位数据。 以下是预期输出的快照。
数据应该像上面的图片一样显示。
有人可以帮我吗?
谢谢。