Иметь и группировать - PullRequest
       34

Иметь и группировать

0 голосов
/ 21 октября 2018

Проблема, которую я пытаюсь решить, состоит в следующем:

Для каждого континента укажите континент и количество стран с населением не менее 10 миллионов

Миртаблица выглядит следующим образом:

 World (name, continent, area, population, gdp)

Мой запрос (который не возвращает правильный результат):

SELECT continent, COUNT(name)
FROM world
GROUP BY continent
HAVING sum(population) >= 10000000

Запрос возврата правильного результата:

SELECT continent, COUNT(name)
FROM world
WHERE population >= 10000000
GROUP BY continent

Может кто-нибудь сказать мне, почему мой запрос неправильный?

1 Ответ

0 голосов
/ 21 октября 2018

Вопрос касается стран, а не континентов, поэтому вам необходимо выполнить фильтрацию перед агрегированием.

Ваша версия запроса отвечает:

Сколько стран вконтиненты с населением более 10 000 000?

Вопрос в следующем:

Сколько стран на каждом континенте имеет население более 10 000 000?

Это разные вопросы.Я также понимаю, что для не владеющих английским языком различие может быть неочевидным при первом прочтении.

...