WITH HourlyWaitTimes AS ( SELECT strftime ( '%H' , datetime ( SnapshotTimestamp )) AS Hour , WaitTime FROM WaitTimeSnapshots WHERE AssetId = '7961FD0C-0833-4565-8AF8-8E4B6F984EF5' AND VersionId = '15A55DBC-D0FE-419B-AB03-DADEC354616D' ), RankedWaitTimes AS ( SELECT Hour , WaitTime , ROW_NUMBER () OVER ( PARTITION BY Hour ORDER BY WaitTime ) AS RowNum , COUNT ( * ) OVER ( PARTITION BY Hour ) AS TotalCount FROM HourlyWaitTimes ) SELECT Hour , CASE WHEN TotalCount % 2 = 1 THEN MAX ( WaitTime ) -- Odd number of rows, middle one ELSE AVG ( WaitTime ) -- Even number of rows, average of the two middle values END AS MedianWaitTime FROM RankedWaitTimes WHERE RowNum IN ( ( TotalCount + 1 ) / 2 , ( TotalCount + 2 ) / 2 ) GROUP BY Hour ORDER BY Hour ; WITH HourlyWaitTimes AS ( SELECT CASE strftime (…