Mam tabelę z czymś danych jak poniżej:Wyniki Grupowanie SQL oparte na zamówienie
ID | RowNumber | Data
------------------------------
1 | 1 | Data
2 | 2 | Data
3 | 3 | Data
4 | 1 | Data
5 | 2 | Data
6 | 1 | Data
7 | 2 | Data
8 | 3 | Data
9 | 4 | Data
chcę grupie każdy zestaw RowNumbers Tak, że mój wynik jest coś takiego:
ID | RowNumber | Group | Data
--------------------------------------
1 | 1 | a | Data
2 | 2 | a | Data
3 | 3 | a | Data
4 | 1 | b | Data
5 | 2 | b | Data
6 | 1 | c | Data
7 | 2 | c | Data
8 | 3 | c | Data
9 | 4 | c | Data
Jedyny sposób, w jaki wiem, gdzie każda grupa zaczyna się i kończy, kiedy RowNumber zaczyna od nowa. Jak mogę to zrobić? Musi też być dość efektywny, ponieważ tabela, w której muszę to zrobić, ma 52 miliony wierszy.
Dodatkowe informacje
ID jest naprawdę sekwencyjne, ale RowNumber może nie być. Myślę, że RowNumber zawsze zaczyna się od 1, ale na przykład RowNumbers dla grupy 1 może wynosić "1,1,2,2,3,4", a dla grupy 2 mogą być "1,2,4,6", itp.
Jaką nazwę powinna otrzymać 27 grupa (po 'z')? –
Co próbujesz znaleźć w zapytaniu? –
@ypercube to nie ma znaczenia, o ile jego unikalna ... liczba zamiast liter byłaby w porządku. – matthew