C'è una soluzione molto semplice usando dense_rank()
dense_rank() over (partition by [Mth] order by [UserAccountKey])
+ dense_rank() over (partition by [Mth] order by [UserAccountKey] desc)
- 1
Questo ti darà esattamente quello che stavi chiedendo:il numero di UserAccountKeys distinte all'interno di ogni mese.