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

Posted

技术标签:

【中文标题】MySQL,混淆 w/查询/错误代码:1111。组函数的使用无效。【英文标题】:MySQL, Confused w/ query / Error Code: 1111. Invalid use of group function. 【发布时间】:2011-12-20 12:29:14 【问题描述】:

我有 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】:
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

【讨论】:

只需要在 FROM 视频的末尾添加一个 v 就可以了。感谢您引导我朝着正确的方向前进。

以上是关于MySQL,混淆 w/查询/错误代码:1111。组函数的使用无效。的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 错误 #1111 - 组函数的使用无效

在 MySQL 上遇到错误代码 1111 我该如何解决?

获取错误 #1111 - 组函数的使用无效

错误代码1111。无效使用组功能

遇到 SQL 错误 1111 的问题

JS 逆向百例W店UA,OB反混淆,抓包替换CORS跨域错误分析