MySQL, Confused w / query / Error Code: 1111. Неправильное использование групповой функции. - PullRequest
1 голос
/ 02 ноября 2011

у меня 3 таблицы.

  Video (Id, ViewCount, Location)
  Likes (Id, Video, User)
  Location (Id, Name) 

Как запросить четыре видео с самым высоким рейтингом (сумма Video.ViewCount + count (Likes.User) Сгруппируйте их по Video.Id и верните 4 лучших результата из определенного местоположения.

Я пробовал это:

SELECT  Video.Id, sum(Video.ViewCount + count(Likes.User)) as Points From Video
  Left Join Likes
  ON Likes.Video=Video.Id
  WHERE Video.Location=30
  GROUP BY Video.Id
  ORDER BY Points DESC
  LIMIT 4;

Но я получаю неправильное использование групповой функции. У кого-нибудь есть указатели ??

1 Ответ

3 голосов
/ 02 ноября 2011
SELECT  id,
        viewcount +
        (
        SELECT  COUNT(*)
        FROM    likes l
        WHERE   l.video = v.id
        ) AS points
FROM    video v
WHERE   location = 30
ORDER BY
        points DESC, id
LIMIT 4
...