如何在GROUP BY子句中放入CASE语句

Qua*_*kle 5 mysql sql

我有一个表,其中一列是逗号分隔的可能值列表.我想查询,按每个可能的值分组.

作为测试,我写了这个查询:

SELECT
    `Please_identify_which_of_the_following_classroom_hardware_you_c2`,
    count(`_How_would_you_rate_your_overall_skill_in_using_educational_tec1`) as count,
    `_How_would_you_rate_your_overall_skill_in_using_educational_tec1`
FROM
    `data_Copy_of_Faculty_survey_on_technology_in_the_classroom_Respo`
GROUP BY
    `_How_would_you_rate_your_overall_skill_in_using_educational_tec1`,
    CASE
        WHEN `Please_identify_which_of_the_following_classroom_hardware_you_c2` LIKE '%Elmo%' THEN 'Elmo'
    END
Run Code Online (Sandbox Code Playgroud)

(请原谅列名,它们是自动生成的)

我知道CASE语句在这一点上并不是非常有用,但我只是想让查询运行.我收到一个错误:

错误1064(42000):您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在第10行的'THEN'Elmo'END'附近使用正确的语法

对于我的生活,我找不到查询的错误.任何见解将不胜感激.

编辑:我尝试过单引号和双引号 - 无论使用什么引号都是同样的问题.

更新:正如Mark指出的那样,即使我要解析这个查询,结果也不会是我想要的.我仍然很好奇为什么这不解析,但查询不是我最初问题的解决方案.

小智 1

尝试这个:

SELECT
    CASE
        WHEN `Please_identify_which_of_the_following_classroom_hardware_you_c2` LIKE '%Elmo%' THEN 'Elmo'
        ELSE `Please_identify_which_of_the_following_classroom_hardware_you_c2`
    END AS `Please_identify_which_of_the_following_classroom_hardware_you_c2`,
    count(`_How_would_you_rate_your_overall_skill_in_using_educational_tec1`) as count,
    `_How_would_you_rate_your_overall_skill_in_using_educational_tec1`
FROM
    `data_Copy_of_Faculty_survey_on_technology_in_the_classroom_Respo`
GROUP BY
    `_How_would_you_rate_your_overall_skill_in_using_educational_tec1`,
    CASE
        WHEN `Please_identify_which_of_the_following_classroom_hardware_you_c2` LIKE '%Elmo%' THEN 'Elmo'
    ELSE `Please_identify_which_of_the_following_classroom_hardware_you_c2`
        END
Run Code Online (Sandbox Code Playgroud)