Нет: это не имеет смысла.
Вы не можете
- используйте GROUP BY и SELECT *
- использовать RANK в подпункте
- используйте GROUP BY в предложении OVER
- GROUP BY над функцией ранжирования не имеет смысла
Что вы пытаетесь сделать, с вводом / выводом и схемой, пожалуйста.
Редактировать, основываясь на ответе Габи
select
*
from
(
SELECT
*, RANK() OVER (GROUP BY Nome,AccountID,Matricola DESC) as bar
from
table
) foo
ORDER BY
CASE WHEN @Attivita=0 THEN bar END