不确定ROW_NUMBER是否有效

时间:2018-05-09 09:35:35

标签: sql sql-server tsql

我在AccountId中有两列,AgreementId。

enter image description here

我想要另一列,其中前两行将返回1,因为5552是针对同一AgreementId的第一个AccountId .... 接下来的行将全部返回2;它是可以找到的第二个租金帐户。

请知道我该怎么做?

2 个答案:

答案 0 :(得分:2)

使用dense_rank()

select *,
       dense_rank() over (order by AccountId, AgreementId) Seq
from table t;

答案 1 :(得分:2)

您可能需要DENSE_RANK

SELECT
    AccountId,
    AgreementId,
    DENSE_RANK() OVER (PARTITION BY AgreementId ORDER BY AccountId) dr
FROM yourTable;

协议分区意味着每个单独的协议都会重置编号。在协议中,我们使用帐户ID来订购密集排名。