Я работаю над практической проблемой из SQLZOO и не уверен, почему решение, которое я пробую, не работает, поскольку оно имеет смысл для меня.
Это формат таблицы::
( имя ------ континент ----- площадь -------- население ---- ВВП
Афганистан - Азия --------- 652230 ------- 25500100 ----- 20343000000
...)
Вопрос в следующем:
Найдите самую большую страну (по области) на каждом континенте, покажите континент, название и область.
Вот способ, которым я думал, чтобы решить это:
SELECT continent, name, area FROM world
WHERE name IN (SELECT continent, name, MAX(area) FROM world
GROUP BY continent);
Я знаю, что это не работает, но почему бы и нет?Похоже, что вложенный оператор SELECT находит страну с МАКСИМАЛЬНОЙ площадью на континент, не так ли?
Фактическое решение для этого выглядит примерно так:
SELECT continent, name, area FROM world x
WHERE area >= ALL
(SELECT area FROM world y
WHERE y.continent=x.continent
AND area>0)
Но это кажетсякак сложный способ придумать это ;;этот способ имеет больше смысла?Любые идеи приветствуются
Спасибо заранее !!