DENSE_RANK или ROW by AccountNo не совсем верно - PullRequest
0 голосов
/ 07 ноября 2019

Необходимо создать строку или рейтинг, чтобы повторить по учетной записи. (Смотрите желаемый результат ниже)

Пробовал Разные DENSE_RANKS, RANK, ROW_NUMBER, но продолжаю получать неправильные значения!

  , DENSE_RANK() OVER ( ORDER BY a.accountNo )
  , DENSE_RANK() over (partition by a.accountNo order by (SELECT NULL) ASC) dr1
  , ROW_NUMBER() OVER(ORDER BY  a.accountNo ASC) AS Ro
  , RANK() OVER (ORDER BY a.accountNo DESC) AS xRank

Таким образом, данные будут выглядеть следующим образом:

Account | Rnk
12345   | 1
12345   | 2
12345   | 3
23456   | 1
23456   | 2
23456   | 3
23456   | 4

Я знаю, что упускаю что-то простое ...

1 Ответ

1 голос
/ 07 ноября 2019

Предполагая произвольный порядок номеров строк, вы можете сделать это:

, ROW_NUMBER() OVER(PARTITION BY a.accountNo ORDER BY @@SPID) As Rn

@@SPID Возвращает идентификатор сеанса текущего пользовательского процесса, что означает, что это фиксированное значение в запросе - поэтому порядокна самом деле произвольно (и это короче, чем запись (SELECT NULL)).

...