Попробуй это. Замените MyTable
именем вашей таблицы. Этот запрос вернет top 2. Поскольку вы не указали, в каком порядке вы хотите вернуть Top N записей, я использовал GROUP_Row_ID
для заказа. Вы можете изменить его в соответствии с вашими потребностями.
DECLARE @n INT = 2;
SELECT *
FROM ( SELECT * ,
ROW_NUMBER() OVER ( PARTITION BY AlternativeId
ORDER BY GROUP_Row_ID ) AS rn
FROM MyTable ) t
WHERE t.rn <= @n;