Перечисление групп в запросе - PullRequest
2 голосов
/ 28 сентября 2011

Я пытаюсь перечислить группы внутри определенного представления.

Пример из этого представления:

ID      FK1     FK2 FK3 FK4
104091  10160   1   1   29152
106797  10161   2   1   NULL
34682   10162   1   6   28556
61582   10162   1   6   28557
53045   10163   1   1   29154
23918   10164   1   6   28731
34683   10164   1   6   28729
89003   10164   1   4   28728
50547   10164   1   4   28727
50548   10165   1   6   29846
34684   10165   1   5   29847
23919   10165   1   5   29844

Я бы хотел что-то вроде:

ID      FK1     FK2 FK3 FK4     C
104091  10160   1   1   29152   1
106797  10161   2   1   NULL    2
34682   10162   1   6   28556   3
61582   10162   1   6   28557   3
53045   10162   1   1   29154   4
23918   10164   1   6   28731   5
34683   10164   1   6   28729   5
89003   10164   1   4   28728   6
50547   10164   1   4   28727   6
50548   10165   1   6   29846   7
34684   10165   1   5   29847   8
23919   10165   1   5   29844   8

Как видите, выглядит как

ROW_NUMBER() OVER (PARTITION BY FK1, FK2, FK3 ORDER BY FK1, FK2, FK3) AS C

С той лишь разницей, что PARTITION BY сбрасывает номер строки для каждой группы. Вместо этого я хотел бы иметь уникальный номер для каждой группы. Больше похоже на GROUP_NUMBER ()

Надеюсь, вопрос был достаточно ясен:)

1 Ответ

3 голосов
/ 28 сентября 2011
DENSE_RANK() OVER (ORDER BY FK1, FK2, FK3) AS C

Должен делать то, что вам нужно.

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