У меня есть следующая входная таблица:
Seq Group GroupSequence
1 0
2 4 A
3 4 B
4 4 C
5 0
6 6 A
7 6 B
8 0
Выходная таблица:
Line NewSeq GroupSequence
1 1
2 2 A
3 2 B
4 2 C
5 3
6 4 A
7 4 B
8 5
Правила для входной таблицы:
Любое положительное целое число в столбце Группа указывает, что строки сгруппированы вместе. Все поле может быть NULL или пустым. Значение null или 0 указывает, что строка обрабатывается сама по себе. В приведенном выше примере есть две группы и три «одиночных» строки.
столбец GroupSequence — это одиночный символ, который сортируется внутри группы. NULL, пробел, «A», «B», «C», «D» — единственные допустимые символы.
если Group имеет положительное целое число, в GroupSequence должен быть буквенный символ.
Мне нужен запрос, который создает выходную таблицу с новым столбцом, который упорядочен, как показано. Внешние приложения должны перебирать эту таблицу в порядке Line или NewSeq (тот же порядок, разные значения).
Я пробовал варианты GROUP BY, PARTITION BY, OVER() и т. д. БЕЗ успеха. Любая помощь высоко ценится.