У меня есть таблица, которая является результатом запроса (это большой!), Который выглядит следующим образом.
![](https://i.stack.imgur.com/ibTYi.png)
Таблица пытается посчитать набор (seq_num 1,2 ..) имен в каждом идентификаторе по типу, но оставляет нули, когда в одном и том же идентификаторе появляется другой тип
Я бы хотел получить результат, который выглядит следующим образом.
![This is the result that I would like to have.](https://i.stack.imgur.com/NzdVd.png)
Невозможно использовать подзапрос или max, потому что для этого потребуется группа, из-за которой возникнет боль, поскольку запрос уже слишком сложен.
Был бы очень признателен за помощь здесь.
Спасибо!
Код запроса для этих 4 дополнительных столбцов справа:
CASE WHEN (TYPE = 'E') THEN (DENSE_RANK() OVER (PARTITION BY ID,TYPE ORDER BY NAME) + DENSE_RANK() OVER (PARTITION BY ID, TYPE ORDER BY NAME DESC) - 1) ELSE 0 END AS NC_E,
CASE WHEN (TYPE = 'M') THEN (DENSE_RANK() OVER (PARTITION BY ID,TYPE ORDER BY NAME) + DENSE_RANK() OVER (PARTITION BY ID, TYPE ORDER BY NAME DESC) - 1) ELSE 0 END AS NC_M,
CASE WHEN (TYPE = 'D') THEN (DENSE_RANK() OVER (PARTITION BY ID,TYPE ORDER BY NAME) + DENSE_RANK() OVER (PARTITION BY ID, TYPE ORDER BY NAME DESC) - 1) ELSE 0 END AS NC_D,
CASE WHEN (TYPE = 'C') THEN (DENSE_RANK() OVER (PARTITION BY ID,TYPE ORDER BY NAME) + DENSE_RANK() OVER (PARTITION BY ID, TYPE ORDER BY NAME DESC) - 1) ELSE 0 END AS NC_C
ПРИМЕЧАНИЕ. У меня есть другие идентификаторы, в которых ТИП не изменяется, и именно тогда он работает нормально, и я могу понять, почему это так. Проблема в том, что информация в каждом ID довольно разнообразна.