Situace: Potřebujete seznam nejnovějších článků od všech redaktorů.
Vytvoříme tedy dotaz jako tento:
SELECT * FROM `articles` GROUP BY `author_id` ORDER BY `created_date` DESC
#Dotaz trval 0.0036 sekund
Zjistíme ale, že dotaz vrací ne poslední článek od každého redaktora, ale první, který byl do databáze vložený. To je špatně. Jelikož příkaz GROUP BY se provádí před ORDER BY.
Řešením je použití vnořeného SQL dotazu, kde nejprve výsledky seřadíme.
SELECT * FROM
(SELECT * FROM `articles` ORDER BY `created_date` DESC) as t
GROUP BY `author_id`
#Dotaz trval 0.0042 sekund