@lolrofl01

Как построить такой запрос sql?

Привет!
Есть 2 таблицы: regions (регионы) и shops (магазины). У одного региона может быть много магазинов. Соответственно в таблице shops есть столбик region_id, который и указывает принадлежность магазина к региону. Задача стоит следующая: вытащить все регионы с количеством магазинов в каждом из них.

Я набросал вот такой код, но почему-то он работает некорректно (в большинстве регионов кол-во магазинов показывает больше, чем вообще сумарно магазинов существует в таблице shops
SELECT regions.*, SUM(shops.id) as shopsTotal
FROM regions
LEFT JOIN shops
ON shops.region_id = regions.id
GROUP BY regions.id
  • Вопрос задан
  • 71 просмотр
Решения вопроса 2
поменяйте SUM(shops.id) на COUNT(shops.id)
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SUM(shops.id) - это сумма всех id, а не их количество. Используйте COUNT(*)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Искра Екатеринбург
от 80 000 до 100 000 ₽
Art gorka Санкт-Петербург
от 60 000 ₽
24 апр. 2024, в 20:57
3000 руб./за проект
24 апр. 2024, в 20:35
5000 руб./за проект