Jak mogę zidentyfikować grupy kolejnych dat w SQL?

Próbuję napisać funkcję, która identyfikuje grupy dat i mierzy rozmiar grupy.

Do tej pory robiłem to proceduralnie w Pythonie, ale chciałbym przenieść go do SQL.

na przykład lista

Bill 01/01/2011 
Bill 02/01/2011 
Bill 03/01/2011 
Bill 05/01/2011 
Bill 07/01/2011 

powinny być wyprowadzane do nowej tabeli jako:

Bill 01/01/2011  3 
Bill 02/01/2011  3 
Bill 03/01/2011  3 
Bill 05/01/2011  1 
Bill 07/01/2011  1

W idealnej sytuacji powinno to być również możliwe rozliczenie w weekendy i święta - daty w mojej tabeli będą wynosić od poniedziałku do piątku (myślę, że mogę to rozwiązać, tworząc nową tabelę dni roboczych i numerując je kolejno). Ktoś w pracy zasugerował, że spróbuję CTE. Jestem całkiem nowy w tym zakresie, więc będę wdzięczny za wszelkie wskazówki, które każdy może dostarczyć! Dzięki.