Я пытаюсь написать запрос для SQL Server 2005, но не могу понять, как это сделать. У меня есть таблица со следующими полями:
MessageID int
CategoryID int
Приоритет tinyint
MessageText NVARCHAR (MAX)
Мне нужен запрос, который будет возвращать * для каждой строки, имеющей наивысший приоритет в категории. Например, если у меня были следующие данные:
MessageID, CategoryID, Priority, MessageText
1, 100, 1, ошибка № 1234 произошла
2, 100, 2, ошибка № 243 произошла
3, 100, 3, ошибка № 976 произошла
4, 200, 4, ошибка № 194 произошла
5, 200, 1, ошибка № 736 произошла
6, 300, 3, ошибка № 54 произошла
7, 300, 2, ошибка № 888 произошла
тогда результат будет:
MessageID, CategoryID, Priority, MessageText
3, 100, 3, ошибка № 976 произошла
4, 200, 4, ошибка № 194 произошла
6, 300, 3, ошибка № 54 произошла
Обратите внимание, что он возвращает одну строку для каждой категории и что эта строка имеет наивысший приоритет для этой категории.
Может кто-нибудь сказать мне, как я могу написать этот запрос?