我在 SQL Server 2008 数据库中有两个表,一个列出组,另一个将这些组映射到对象记录。一个组可能有许多对象。
我有以下查询
SELECT GroupNumber
From dbo.Groups G
LEFT OUTER JOIN dbo.Mapping_ObjectToGroup m ON G.GroupID = m.GroupID
结果如下表
GroupNumber
700
700
700
701
701
702
703
703
如何获得第二列,为每个组提供索引号,如下所示:
GroupNumber | Ctr
700 | 1
700 | 2
700 | 3
701 | 1
701 | 2
702 | 1
703 | 1
703 | 2
本质上,我希望能够用一个整数来表示组中的每个项目。我正在做的事情有名字吗?谁能帮我做这个吗?
最佳答案
您可以使用row_number()
来实现此目的。您是否有一个字段来建立order by
?如果没有,可以用null随机选择。这是一个例子:
SELECT GroupNumber,
row_number() over (partition by GroupNumber order by (select null)) ctr
From dbo.Groups G
LEFT OUTER JOIN dbo.Mapping_ObjectToGroup m ON G.GroupID = m.GroupID
关于sql - 如何在 SQL 中获取组中某个项目的整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28776853/