Q&A for Drupal developers and administrators
WITH groups(date, grp) AS ( SELECT DISTINCT CAST(CreationDate AS DATE), dateadd(day, -DENSE_RANK() OVER (ORDER BY CAST(CreationDate AS DATE)), CAST(CreationDate AS DATE)) AS grp FROM Posts WHERE OwnerUserId = ##UserId## ) SELECT COUNT(*) AS consecutiveDates, MIN(date) AS minDate, MAX(date) AS maxDate FROM groups GROUP BY grp ORDER BY 1 DESC, 2 DESC