您正在寻找经过过滤的聚合:
SELECT COUNT(DISTINCT
case when
MODIFIED_DATE BETWEEN TO_DATE('{RUN_DATE_YYYYMMDD}','YYYYMMDD') - 56
AND TO_DATE('{RUN_DATE_YYYYMMDD}','YYYYMMDD') - 49
then CASE_ID
end) as c1,
COUNT(DISTINCT
case when
MODIFIED_DATE BETWEEN TO_DATE('{RUN_DATE_YYYYMMDD}','YYYYMMDD')-49
AND TO_DATE('{RUN_DATE_YYYYMMDD}','YYYYMMDD')-42
then CASE_ID
end) as c2
from t1
WHERE MODIFIED_DATE
BETWEEN TO_DATE('{RUN_DATE_YYYYMMDD}','YYYYMMDD') - 56
AND TO_DATE('{RUN_DATE_YYYYMMDD}','YYYYMMDD') - 42
请注意,该WHERE
子句现在需要覆盖两个间隔。