2011-09-28 95 views
2

我在枚举某个视图内的组。在查询中枚举组

例,从这样的观点:

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()

我希望这个问题是清楚不过了:)

回答

3
DENSE_RANK() OVER (ORDER BY FK1, FK2, FK3) AS C 

应该做你所需要的。

+0

这正是我所期待的!非常感谢! – Kralizek