Запрос на выборку - MySQL (219562)
Формулировка задачи:
Добрый день, необходимо написать запрос, который выберет все страны, в которых количество рек >10.
Имеется БД: Таблица Сountry (id,Name); таблица River(id, Name, Country_id)
Сейчас получается только подсчитать, сколько рек в каждой стране, но как сделать выборку?
select Country, count(River.Name) from Country join River on Country.id = River.Country_id group by Country.Name
Решение задачи: «Запрос на выборку»
textual
Листинг программы
SELECT Country, COUNT(River.id) FROM Country JOIN River ON Country.id = River.Country_id GROUP BY Country.Name HAVING COUNT(river.id) > 10
Объяснение кода листинга программы
В представленном коде выполняется запрос на выборку данных из двух таблиц: Country
и River
.
SELECT Country, COUNT(River.id) FROM Country
- в этой строке указывается, какие данные необходимо выбрать из таблицыCountry
(в данном случае, это столбецCountry
и количество записей в столбцеRiver.id
).JOIN River ON Country.id = River.Country_id
- здесь происходит объединение (join) таблицCountry
иRiver
по полюCountry_id
.GROUP BY Country.Name
- после объединения таблиц, результаты группируются по полюCountry.Name
.HAVING COUNT(river.id) > 10
- в этой строке применяется условие к группировке, которое отбирает только те группы, количество записей в которых больше 10. Таким образом, данный запрос выбирает названия стран из таблицыCountry
, которые имеют более 10 рек в таблицеRiver
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д