Ingen joinforbindelser eller rekursive CTE'er er nødvendige. Standarden mellemrum-og-ø-løsningen er at gruppere efter (værdi minus rækkenummer), da det er invariant inden for en fortløbende sekvens. Start- og slutdatoerne er kun MIN() og MAX() for gruppen.
WITH t AS (
SELECT InfoDate d,ROW_NUMBER() OVER(ORDER BY InfoDate) i
FROM @d
GROUP BY InfoDate
)
SELECT MIN(d),MAX(d)
FROM t
GROUP BY DATEDIFF(day,i,d)