PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Първата и последната стойност агрегатни функции в postgresql, които работят правилно с NULL стойности

Можете да използвате прозоречни функции 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

демонстрация на sql fiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL нечувствителен към малки и големи букви SELECT на масив

  2. Има ли такова нещо като временна функция?

  3. Заявка за елементи на масив вътре в тип JSON

  4. PostgreSQL игнорира тиретата при подреждане

  5. Запитване за подробности за схемата на таблица в PostgreSQL?