0

所以我不知道我是否违反了任何规则,但我对我之前未回答的一个问题感到非常沮丧:

按(前 5 名)计数和(所有其他)计数分组

我只需要一些帮助来修复以下 synatx 错误(尝试运行下面的代码,作为解决方案提供给我):

“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以获取在 '@rank := 0) WHERE desktopcases.Labels NOT LIKE 'ANDdeskcases.Labels NOT LIKE' 附近使用的正确语法第 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
4

2 回答 2

1

我从来没有像你那样做过连接,但如果你只是用逗号分隔表格,它应该可以工作。此外,任何子查询都应该分配一个别名,即使从未使用过......

from
   deskcases,
   ( select @rank := 0) as IgnoreAlias
where ...
于 2013-04-17T18:41:03.610 回答
0

很难猜出您在这里的意图是什么,但您似乎正在尝试加入一个表达式,这是不合法的。

查看http://dev.mysql.com/doc/refman/5.0/en/join.html(或您的 MySQL 版本的等价物) - 您会看到您需要加入一个表或表因子。

于 2013-04-17T16:38:54.373 回答