Учитывая таблицу:
# Id Val
1 1111111111 Andre
2 1111111111 Bart
3 1111111111 Corry
4 2222222222 Donald
5 2222222222 Eric
6 3333333333 Fiona
Я хочу выбрать таблицу с индикатором: сгруппировать строки с одинаковым идентификатором, а именно получить что-то вроде:
# Id Val
1 1111111111 Andre
1 1111111111 Bart
1 1111111111 Corry
2 2222222222 Donald
2 2222222222 Eric
3 3333333333 Fiona
Вэто я придумал решение:
SELECT
(
row_number() OVER (ORDER BY id) - row_number() OVER (PARTITION BY id ORDER BY id) + 1
) nGroupedToRow,
row_number() OVER (ORDER BY id) nRow,
row_number() OVER (PARTITION BY id ORDER BY id) nNumDupl,
id,
val
FROM table1
, которое производит:
nGroupedToRow nRow nNumDupl Id Val
1 1 1 1111111111 Andre
1 2 2 1111111111 Bart
1 3 3 1111111111 Corry
4 4 1 2222222222 Donald
4 5 2 2222222222 Eric
6 6 1 3333333333 Fiona
Мысль, что это может кому-то помочь ... и, может быть, кто-то может улучшить это ... может быть, подобноевопрос был задан, но я не смог его найти, хотя другие решения по переполнению стека привели меня к этому ...
http://sqlfiddle.com/#!18/b52aba/1