Esto me suena a tarea de escuela. Compañero ingluise, en tu post no mencionas qué tipo de problema tienes con la consulta, simplemente pones un enunciado tipo examen y tal pareciera que esperas que te resolvamos el problema. Ojo con eso, el foro es para ayudar, no para hacer el trabajo de otros.
¿Qué haz intentado hacer? Supongo que estarás trabajando en alguna sentencia, sería de mucha utilidad que nos pusieras algo del código que llevas hecho para ayudarte a afinar los detalles.
La consulta no es muy difícil, con algunos conocimientos básicos sobre conceptos de agrupación y JOINS debería de quedar.
si haces esto:
Código SQL:
Ver originalSELECT idcat, MAX(precio)
FROM articulo
GROUP BY idcat
de debe dar el EL PRECIO del artículo más caro POR CADA CATEGORÍA. Utiliza este resultado para filtrar tu tabla original mediante un INNER JOIN y obtendrás el resultado esperado. Si tienes dudas, busca en este mismo foro cualquier post en donde se trate el tema de obtención de máximos, te aseguro que más de alguno te debe servir.
Saludos
Leo.