Existe uma solução muito simples usando
dense_rank()
dense_rank() over (partition by [Mth] order by [UserAccountKey])
+ dense_rank() over (partition by [Mth] order by [UserAccountKey] desc)
- 1
Isso lhe dará exatamente o que você estava pedindo:O número de UserAccountKeys distintos em cada mês.