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

отпечатайте начална и крайна дата в един ред за непрекъснати или припокриващи се периоди от време в oracle SQL

Има елегантно (и ефективно) решение с помощта на match_recognize клауза (която изисква Oracle 12.1 или по-нова версия).

select po, startdate, enddate
from   orders
match_recognize (
  partition by po
  order     by startdate
  measures  first(startdate) as startdate, max(enddate) as enddate
  pattern   ( c* n )
  define    c as max(enddate) + 1 >= next(startdate)  
);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да създадете потребител в Oracle Multitenant 12c без C## префикс

  2. Фина настройка на Oracle DG40DBC

  3. Как да предоставите достъп до v$ изгледи (v$session,v$instance)

  4. Примерни схеми на GitHub

  5. Стойности, разделени със запетая в Oracle