Вопрос по созданию SQL запроса

Что-то никак не додумаюсь. Наверно заработался.
Есть две таблицы: подписки и подписчики. Связаны один ко многим «подписчики(1)-подписки(много)», то есть каждая запись подписки содержит поле «код подписчика». Необходимо следующее. Узнать количество подписчиков, которые подписаны более чем на 2 подписки.
Если не понятно, пишите комментарии, попробую объяснить лучше.

Вот CREATE TABLE для таблиц. Упростил по максимуму.
CREATE TABLE subscriptions
(
id INT,
subscriber_id INT,
);
CREATE TABLE subscribers
(
id INT,
name VARCHAR(64),
surname VARCHAR(64)
);


Вот какой запрос я попробовал построить, но он выводит не то, что нужно.
SELECT COUNT(subscribers.id)
FROM subscribers INNER JOIN subscriptions ON subscribers.id = subscriptions.subscribers_id
GROUP BY subscribers.id
HAVING COUNT(subscriptions.id) > 2;
  • Вопрос задан
  • 2538 просмотров
Пригласить эксперта
Ответы на вопрос 3
m08pvv
@m08pvv
HAVING count(тра-та-та) > 2 подходит?
Ответ написан
Комментировать
UseRifle
@UseRifle
SELECT COUNT(*) FROM
(SELECT subscribers.id
FROM subscribers INNER JOIN subscriptions ON subscribers.id = subscriptions.subscribers_id
GROUP BY subscribers.id
HAVING COUNT(subscriptions.id) > 2) AS counts;
Ответ написан
lashtal
@lashtal
зачем JOIN ???

SELECT COUNT(*) FROM
(
SELECT COUNT(*) cnt FROM subscriptions
GROUP BY subscriber_id
HAVING cnt > 2
) t;
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы