如何获得 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
我在 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