как подсчитать количество записей в таблице с группировкой по полю

есть таблица director (id, name) и movie (id, name, directorid, year). Задача вывести всех директоров, снявших более 3-ех фильмов. Пробую так:

SELECT * FROM director WHERE (SELECT COUNT(*) FROM movie WHERE movie.directorid = director.id) > 3

Правильно ли я делаю?


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

Автор решения: 0xdb

Не совесем правильно. Сделайте так:

SELECT * FROM director 
WHERE id IN (
    SELECT directorid
    FROM movie 
    GROUP BY directorid
    HAVING COUNT(DISTINCT name) > 3
    )
→ Ссылка