我正在尝试枚举某个视图中的组。
示例,从这个视图:
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重置每个组的row_number。相反,我希望每个组都有一个唯一的编号。更像是GROUP_NUMBER()
我希望这个问题足够明确:)
答案 0 :(得分:3)
DENSE_RANK() OVER (ORDER BY FK1, FK2, FK3) AS C
应该做你需要的。