Что разница междуSQL разница между> = All и MAX
Заявление 1:
SELECT continent, name, area FROM world x
WHERE x.area >= ALL
(SELECT y.area FROM world y
WHERE y.continent=x.continent)
Заявление 2:
SELECT continent,name,area FROM world x
WHERE x.area =(SELECT MAX(y.area) FROM world y
WHERE y.continent=x.continent)
Это, кажется, дает мне разные результаты, как показано ниже.
Для утверждения 1: http://s8.postimg.org/6t8588cz9/ss1.jpg
Для утверждения 2: http://s4.postimg.org/5lfo10xul/ss2.jpg
Не> = ALL логически эквивалентно SELECT MAX()?
Второй оператор, который использует MAX, возвращает надмножество первого оператора. (Больше результатов по сравнению с первым утверждением) Я не могу понять, почему это так.
Это копировальный или паспорт? Что значит «разные результаты»? –
Второй оператор, который использует MAX, возвращает надмножество первого оператора. (Больше результатов по сравнению с первым утверждением) Я не могу понять, почему это так. – hotguy23
Это не имеет никакого смысла. Второе утверждение должно возвращать * подмножество * первого, потому что вы включаете только строки, равные наибольшей площади (в отличие от большего или равного). Можете ли вы воспроизвести это поведение в [SQL Fiddle] (http://sqlfiddle.com)? –