如何获得 SQL 组中某项的整数?

How do you get an integer number for an item in group in SQL?

我在 SQL Server 2008 数据库中有两个 table,一个列出组,另一个将这些组映射到对象的记录。一组可能有许多对象。

我有以下查询

SELECT GroupNumber
From dbo.Groups G
LEFT OUTER JOIN dbo.Mapping_ObjectToGroup m ON G.GroupID = m.GroupID

这导致table喜欢

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吗?如果没有,你可以随机 select 与 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