Вот мой запрос:
SELECT [Id], [HotelName], [StarRating], [Description], [CheckinDate], [CheckoutDate], [Price], [ImageUrl]
FROM
(
SELECT TOP (6) [Id], [HotelName], [StarRating], [Description], [CheckinDate], [CheckoutDate], [Price], [ImageUrl], RANK() OVER(PARTITION BY [StarRating] ORDER BY [StarRating]) AS Num
FROM [dbo].[Hotel]
WHERE [CityId] = @CityId
AND CheckinDate > GETDATE()
AND [StarRating] IN (3, 4, 5)
) X
WHERE Num <= 2
Я хочу получить 2 строки для каждой звездной оценки: 2 из рейтинга 3, 2 из рейтинга 4 и 2 из рейтинга 5. Как я могу это сделать? Я придумал вышеупомянутое после того, как уже провел некоторые онлайн-исследования, но, очевидно, я не совсем понимаю, как его реализовать, потому что он не работает ... Я получаю 6 рядов звездного рейтинга 3