У меня есть эти таблицы:
репетиторы :
tutorid firstname, lastname...
курсы :
url tutorid
рецензии :
review courseid
Мне нужно выбрать всех репетиторов, у которых больше всего отзывов. 1 репетитор = 1 курс Сначала я попытался выбрать курсы с наибольшим количеством отзывов:
select y.courseid, num from (select courseid,COUNT(reviews.rating) as num
from reviews group by (reviews.courseid)) y;
При этом выбираются все URL-адреса и количество отзывов для каждого.
это
select y.courseid, MAX(num) from (select courseid,COUNT(reviews.rating) as num
from reviews group by (reviews.courseid)) y;
будет отображать один курс с большинством обзоров - даже если есть другие курсы с таким же (максимальным) количеством отзывов - они не будут отображаться.
Я пытаюсь бороться с этим. Я попытался
select y.courseid, num from (select courseid,COUNT(reviews.rating) as num
from reviews group by (reviews.courseid)) y
where num = MAX(num);
, но получил invalid use of group function
ошибку.
РЕДАКТИРОВАТЬ : courseid - это URL-адрес курса. Поскольку в URL-адресе курса используется внешний ключ в таблице отзывов.