Mysql 语法错误:按前5名和其他分组结果
所以我不知道我是否违反了任何规则,但我对一个以前没有回答的问题感到非常沮丧: 我所需要的只是一些帮助,以修复以下synatx错误,这些错误是作为解决方案提供给我的,因为我试图运行下面的代码: 您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解在“@rank:=0”附近使用的正确语法 哪里 桌面案例。标签不一样 和桌面机箱。标签与第14行中的“不一样” 我没有从最初提供解决方案的任何人那里得到任何回应。我想,对于像他们这样技术娴熟的人来说,要找到一个简单的解决办法需要2分钟,但是,唉……无线电沉默接踵而至。任何帮助都将不胜感激!: 谢谢大家!Mysql 语法错误:按前5名和其他分组结果,mysql,group-by,max,Mysql,Group By,Max,所以我不知道我是否违反了任何规则,但我对一个以前没有回答的问题感到非常沮丧: 我所需要的只是一些帮助,以修复以下synatx错误,这些错误是作为解决方案提供给我的,因为我试图运行下面的代码: 您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解在“@rank:=0”附近使用的正确语法 哪里 桌面案例。标签不一样 和桌面机箱。标签与第14行中的“不一样” 我没有从最初提供解决方案的任何人那里得到任何回应。我想,对于像他们这样技术娴熟的人来说,要找到一个简单的解决办法需要2分钟,但是
SELECT
IF(rank = 6, "Other", sub.Labels)AS Label,
SUM(sub.CaseCount)AS ResolvedCases
FROM
(
SELECT
IF(@Rank < 6 ,@Rank := @Rank + 1, @Rank)AS Rank,
deskcases.Labels,
COUNT(deskcases.Labels)AS CaseCount
FROM
deskcases,
(SELECT @rank := 0)AS IgnoreAlias
WHERE
deskcases.Labels NOT LIKE ''
AND deskcases.Labels NOT LIKE '%SPAM%'
AND deskcases.Labels NOT LIKE '%Online Orders%'
AND deskcases.`Case Status` LIKE 'Resolved'
AND deskcases.`Created At` > CURDATE()- INTERVAL 30 DAY
GROUP BY
deskcases.Labels
ORDER BY
CaseCount DESC
)sub
GROUP BY
sub.rank ASC
很难猜出您在这里的意图,但您似乎试图加入一个不合法的表达式
查看MySQL版本或类似版本-您将看到需要连接到表或表因子。我从未做过像您这样的连接,但如果您只是用逗号分隔表,它应该可以工作。此外,任何子查询都应该分配一个别名,即使从未使用过
from
deskcases,
( select @rank := 0) as IgnoreAlias
where ...
麦迪,谢谢你的回复,但我还是不知所措如果你查看我上一篇文章的链接,应该会更清楚我想要完成什么…当你删除JOIN@rank:=0时会发生什么?我不知道它为什么在那里,也许你不需要它。或者,尝试在1=1上加入select@rank:=0,或者类似的东西。这将使连接有效,并为您初始化@rank。再说一次,我不明白你想做什么,所以我可能有点离题了。德拉普,这就是我们两个人;-。我做了你的编辑,它成功了!嗯,实际上我只有3个标签+1个其他剩余的和,我想有5个+其他的…但这一定在秩逻辑的某个地方?非常感谢您迄今为止的帮助。@defaultuser909,您可能需要在排名中。。。而不仅仅是如果排名。。。AT表示变量。