Фильтр по дате по конкретному параметру
Всем привет! Подскажите, пожалуйста, возможно ли сделать фильтр по дате но для oper_type = 1.. Есть такой набор данных:
with cte as (
select to_date ('02.11.2021','dd.mm.yyyy') as dt,1 oper_type,1234 as id
from dual
union all
select to_date ('02.11.2021','dd.mm.yyyy') as dt,1 oper_type,1235 as id
from dual
union all
select to_date ('11.11.2021','dd.mm.yyyy') as dt,2 oper_type,1234 as id
from dual
union all
select to_date ('12.11.2021','dd.mm.yyyy') as dt,2 oper_type,1235 as id
from dual
union all
select to_date ('02.11.2021','dd.mm.yyyy') as dt,1 oper_type,1236 as id
from dual
)
Результат должен быть такой:
select max(case when oper_type = 1 then dt end) as dt1
,max(case when oper_type = 2 then dt end) as dt2
,id
from cte
group by id
Но при этом нужно поставить фильтр на дату, но для oper_type = 1:
select max(case when oper_type = 1 then dt end) as dt1
,max(case when oper_type = 2 then dt end) as dt2
,id
from cte
where (dt < to_date ('03.11.2021') and oper_type = 1)
group by id
Результат неверен, тк второй столбец пустой, а должен быть заполнен... Возможно ли реализовать данный фильтр или нужно делать селф джойн к этой таблице?