当前位置: 首页 > 面试题库 >

MySQL错误:#1247-不支持参考'业力'(对组功能的参考)

钱睿范
2023-03-14
问题内容

这是下面的我的mysql查询。通过许多有用的问题和评论,我几乎快步入尾声了。该查询背后的思想是用户提交一个链接,应用程序插入两行,一个插入链接,另一行插入投票(默认投票,为什么用户不为自己提交的文件投票?)然后每一个投票只是另一行在akarma_upkarma_down等于1的票数表中(不久将更改为karma_delta保存在额外的列上。我那里也有流行度算法,这似乎使我的查询感到困惑。运行以下查询可确保出现此错误。

#1247 - Reference 'karma' not supported (reference to group function)

该查询的大部分要点是获取业力

SELECT links.*, (SUM(votes.karma_up) - SUM(votes.karma_down)) AS karma
FROM links, votes
WHERE links.id = votes.link_id
GROUP BY votes.link_id
ORDER BY (karma - 1) / POW((TIMESTAMPDIFF(HOUR, links.created, NOW()) + 2), 1.5) DESC
LIMIT 0, 100

如果没有流行算法,ORDER BY查询将无法完美运行,将votes表中的业力总和相加,并在其值上附加一列。


问题答案:

问题在这里:

`ORDER BY karma...

您不能通过定义为别名的东西来订购。试试这个:

`ORDER BY ((SUM(votes.karma_up) - SUM(votes.karma_down)) - 1) / POW((TIMESTAMPDIFF(HOUR, links.created, NOW()) + 2), 1.5) DESC`

希望数据库可以弄清楚不要对其进行两次评估。如果不是,请先使用内部选择而不使用顺序来创建别名,然后使用另一个选择来进行排序。



 类似资料:
  • 问题内容: Java8中是否有一种方法可以将方法引用用作对象来使用其方法,例如: 这个问题与无关,仅作为示例,我想对方法参考有答案 问题答案: 您可以编写一个静态方法来执行此操作: 然后,您可以将其放在实用程序类中并静态导入。 或者,创建一个更简单的静态方法,该方法 只 返回给定的函数,以使编译器知道您在做什么:

  • 问题内容: 我似乎无法弄清楚我的代码出了什么问题,但是我不断得到: 这是我的代码: 当我在查询中将’ ‘而不是设置为变量时,它可以正常工作,因此我知道这是元组语法或其他问题。我已经试过了,没有括号,有第二个变量,有没有单独定义的游标,基本上我能想到的每种方法,我已经研究了数小时,但是却一无所获,所以任何帮助都是超级有用的赞赏。 问题答案: 嵌套列表,元组用于,而不用于。 传递包含参数的平面列表(或

  • 我正在尝试使用Ansible-Playbook在Ubuntu机器上安装Apache2,PHP。我在执行playbook后得到以下错误 致命:[18.220.215.181]:失败!=>{“changed”:false,“msg”:“(systemd)模块不支持的参数:启用支持的参数包括:daemon_reexec,daemon_reload,enabled,force,masked,name,no

  • 编辑:因为人们仍然从google登陆这里,你必须在OpenGL环境中调用每一个OpenGL方法。因此,在使用GL做任何事情之前,请确保您在一个上下文中。 我试图用lwjgl在我的屏幕上呈现一个简单的文本,但是每次都失败了!当我启动游戏时,它崩溃了,并向我抛出错误: 我需要使用现代openGL还是什么?我真的需要帮助

  • http状态码 状态码解释 错误码 错误码解释 400 Bad Request - - - - 400001 Invalid parameters - - 400002 Missing parameters 401 Unauthorized - - - - 401001 Unauthorized user 403 Forbidden - - - - 403001 Not allowed to ac

  • 我在应用程序中有多个匕首瞄准镜 UserScope-范围表示用户会话 ActivityScope-每个活动的范围 UserComponent-CoreComponent的子组件 UserManager-创建UserComponent的单例程序 HomeComponent-依赖于UserComponent的组件 我试图在下更新用户对象,但不知何故,对象更新没有反映在它的依赖组件上。因此,一旦更新屏幕