Группировка на основе ROW_Number каждой группы - PullRequest
0 голосов
/ 26 апреля 2018

У меня было требование, чтобы группировка основывалась на row_number каждой группы.Пожалуйста, просмотрите изображение

Image - please view this

1 Ответ

0 голосов
/ 26 апреля 2018

SQL-запросы представляют неупорядоченные наборы.Таким образом, различие между двумя группами для 47641. не определено.

Вы можете определить запрос, который назначит группу, которая имеет ровно один fiberid для каждого scname.Когда есть кратные значения, назначение является произвольным.

Для этого вы можете использовать dense_rank():

select t.*,
       (dense_rank() over (order by scname) - 1 + 
        row_number() over (partition by scname, fiberid order by fiberid)
       ) as grp
from t;

Если у вас есть порядок для строк, то более стабильное назначениеможно рассчитать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...