Maximum of Column per Group This is easily done with a subquery: Other solutions are to use a  LEFT JOIN  or to sort all rows descending by price and get only the first row using the MySQL-specific  LIMIT  clause: If there were several most expensive articles, each with a price of 19.95, the  LIMIT solution would show only one of them. Task: Find the highest price per article. Task: For each article, find the dealer or dealers with the most expensive price. This problem can be solved with a subquery like this one: 329 SELECT article, dealer, price FROM shop WHERE price=(SELECT MAX(price) FROM shop); SELECT s1.article, s1.dealer, s1.price FROM shop s1 LEFT JOIN shop s2 ON s1.price < s2.price WHERE s2.article IS NULL; SELECT article, dealer, price FROM shop ORDER BY price DESC LIMIT 1; SELECT article, MAX(price) AS price FROM shop GROUP BY article ORDER BY article; SELECT article, dealer, price FROM shop s1 WHERE price=(SELECT MAX(s2.price) FROM shop s2 WHERE s1.article = s2.article) ORDER BY article; +---------+--------+-------+ | article | dealer | price | +---------+--------+-------+ | 0004 | D | 19.95 | +---------+--------+-------+ +---------+-------+ | article | price | +---------+-------+ | 0001 | 3.99 | | 0002 | 10.99 | | 0003 | 1.69 | | 0004 | 19.95 | +---------+-------+ +---------+--------+-------+ | article | dealer | price | 3.6.4 The Rows Holding the Group-wise Maximum of a Certain Column 3.6.3 Maximum of Column per Group Note