sql - 如何在 SQL 中获取组中某个项目的整数?

标签 sql sql-server-2008 count

我在 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/

相关文章:

PHP MySQL 多重计数连接加法

python - Django:数据透视表

mysql - 如何将shell脚本变量作为OUT参数传递给mysql存储过程?

html - Oracle 数据库查询截断第一行

sql - 合并两个表的内容而不重复内容

SQL:返回包含具有相同值的行数的列

SQL 单元测试存储过程

c# - 如何从我的新 int 值开始计算?

Python 计算大文件中的 ngram 频率

sql - 首先在SQL Server中按特定值排序