sql >> Database teknologi >  >> RDS >> Sqlserver

Sammenlægning af ubrugte tidsrum

select 
    StaffId,
    BranchId,
    MIN(StartTime),
    MAX(EndTime),
    PatientId
from
(
select *,       
    ROW_NUMBER() over (order by starttime) 
      - ROW_NUMBER() over (partition by isnull(PatientID,-1) order by starttime) rn     
from @results
) v
group by staffid, branchid, patientid, rn
order by MIN (starttime)

Jeg er ikke sikker på, om StaffID og BranchID kan variere i @results-tabellen, så du skal muligvis justere dette, hvis de kan.



  1. Vil ændring af en MySQL-tidszone ændre værdierne af DateTime-felter i en database?

  2. Hvordan erklærer man postgresql json/jsonb felt med efterfølger?

  3. SQLAlchemy-forespørgsel viser fejl Kan ikke forbinde tabel/valgbare 'arbejdsgange' til sig selv

  4. Produktaggregat i PostgreSQL