SQL:创建一个查询,其中列标识每个元组的值
我一直在试图找到此SQL查询的解决方案:SQL:创建一个查询,其中列标识每个元组的值,sql,sql-server,Sql,Sql Server,我一直在试图找到此SQL查询的解决方案: |A| |B| |Output| =========================== 1 A 1 1 A 1 1 B 2 1 C 3 2 C 1 2 D 2 2 F 3 2 H 4 3 D
|A| |B| |Output|
===========================
1 A 1
1 A 1
1 B 2
1 C 3
2 C 1
2 D 2
2 F 3
2 H 4
3 D 1
3 D 1
3 I 2
如您所见,我想创建一个列(输出),用于标识每个(a,B)元组的出现情况,而不是计数或求和,而不删除重复出现的情况
你会怎么做?
提前感谢查找SQL Server内置函数
SELECT *
,DENSE_RANK() OVER (PARTITION BY [A] ORDER BY [B] ASC) AS [OutPut]
FROM TableName
我想你想要的是
densite\u rank()
:
你可能对排名功能感兴趣:不明白,在B列a中有2次出现显示输出1,H作为1次出现显示4,请提供适当的公式。非常感谢,如果你不能正确地搜索你要查找的内容,很难用谷歌搜索或彻底搜索文档。我永远不会把我所做的描述为“排名”:)没问题,很高兴这有帮助:)
select t.*,
dense_rank() over (partition by a order by b)
from table t;