Посчитать средний статус среди поставщиков по городам, но отобразить только города, где больше 1 проекта

Это задание по запросу к базе данных MySQL.

В бд есть таблица Suppliers (Поставщики) с полями:

  • SNUM (вместо ID)
  • SNAME
  • STATUS
  • CITY

Таблица Jobs (Проекты) с полями:

  • JNUM
  • JNAME
  • CITY

Таблица spj, которая соединяет две эти таблицы, (не знаю, нужна ли она для этого задания) с полями:

  • JNUM
  • SNUM.

Нужно посчитать среднее арифметическое статусов поставщиков для каждого города, но отобразить только те города, где больше 1 проекта. Я знаю, как посчитать среднее арифметическое по городам:

SELECT Suppliers.City, AVG(Suppliers.STATUS) AS Summ FROM Suppliers
GROUP BY Suppliers.City

Не могу понять, как при этом отобразить только те города, где больше одного проекта. Помогите, пожалуйста!


Ответы (1 шт):

Автор решения: CrazyElf

Ну, видимо, нужно сделать JOIN таблицы Jobs по полю CITY и поставить в конце условие HAVING COUNT(JNUM) > 1, остальное всё что нужно у вас уже есть.

Полный запрос не пишу, потому что это всё-таки ваше домашнее задание.

P.S. Summ - не очень так название для среднего арифметического. Хотя понятно, что вы это с какого-то примера переписали.

→ Ссылка