Estoy intentando escribir una consulta para SQL Server 2005 pero no puedo encontrar la manera de hacerlo. Tengo una tabla con los siguientes campos:Semi-Tricky SQL Query
de identificador de mensaje int
CategoryID int
Prioridad tinyint
MessageText NVARCHAR (MAX)
necesito una consulta que devolverá * para cada fila que tiene la más alta prioridad dentro de una Categoría. Por ejemplo, si tuviera los siguientes datos:
MessageID, CategoryID, Prioridad, MessageText
1, 100, 1, Error # 1234 se produjo
2, 100, 2, Error # 243 ocurrió
3 , 100, 3, Error # 976 ocurrieron
4, 200, 4, Error # 194 ocurrieron
5, 200, 1, Error # 736 ocurrieron
6, 300, 3, Error # 54 ocurrieron
7, 300 , 2, se produjo el error # 888
entonces el resultado sería:
MessageID, CategoryID, Prioridad, MessageText
3, 100, 3, Error # 976 ocurrió
4, 200, 4, Error # 194 ocurrieron
6, 300, 3, se produjo el error n. ° 54
Observe que devuelve una fila por categoría, y que es la fila que tenía la prioridad más alta para esa categoría.
¿Alguien me puede decir cómo puedo escribir esta consulta?
Se podría escribir mucho más fácil el uso de funciones analíticas en Oracle. :) – TheSoftwareJedi
O utilizando las funciones analíticas en SQL Server y no tener que realizar un puerto a Oracle. – cfeduke