आप विंडो फ़ंक्शंस का उपयोग कर सकते हैं lead()
और lag()
उदाहरण के लिए, प्रथम और अंतिम रिकॉर्ड की जाँच करने के लिए:
select
max(a.id) as id,
max(a.first) as first,
max(a.last) as last
from (
select
v.id,
case when lag(v.id) over(order by v.id, p.install_date) is null then p.install_date end as first,
case when lead(v.id) over(order by v.id, p.install_date) is null then p.remove_date end as last
from vehicle v
left join period p on (v.id = p.car_id)
where v.id = 1
) as a