MySQL,混淆查询/错误代码 : 1111. 组函数的使用无效。

标签 mysql sql mysql-error-1111

我有 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;

但是我对组函数的使用无效。有人有任何指示吗?

最佳答案

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

关于MySQL,混淆查询/错误代码 : 1111. 组函数的使用无效。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7984264/

相关文章:

php - 在php中单击按钮即可备份Mysql数据库

java - JDBC替换: SQLNonTransientConnectionException

c# - 低效的 LINQ - 知道 SQL 应该是什么 - 无法到达那里

sql - 帮助选择计数查询

mysql - 以日历季度为列分组

php - AsyncTask异常RuntimeException

php - 一个 While 循环中有多个 While 循环?

php - 如果现有 mysql 数据重复或更多,如何编辑 "unique"

mysql - 是否可以在 SELECT * JOIN 上排除 FK 的选择?

mysql - 为什么这个查询失败了?