sql >> Database >  >> RDS >> PostgreSQL

Eerste en laatste waarde aggregatiefuncties in postgresql die correct werken met NULL-waarden

U kunt vensterfuncties gebruiken lead() en lag() om eerste en laatste record te controleren, bijvoorbeeld:

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

sql fiddle-demo



  1. MySQL DATEDIFF() vs TIMEDIFF():wat is het verschil?

  2. Simuleer ORDER BY in SQLite UPDATE om de uniciteitsbeperking aan te pakken

  3. Ondersteunde formaatmodellen voor de ROUND() en TRUNC() datumfuncties in Oracle

  4. Database Performance Tuning voor MariaDB