дата выбирается как select max(date) from table, выбери отдельным запросом, оно выбирается
В общем, получился такой скрипт, теперь осталось к этой прошлой дате добавить max и min стоимость
select city,reportdate,type,max(cost) as max_c,min(cost) as min_c
, lag(reportdate,1) over ( order by reportdate ) as pr_d
from (SELECT cost,city,reportdate,type
FROM x
UNION ALL
SELECT cost,city,reportdate,type
FROM x_2 )
group by city,reportdate,type;