SQL分组求和查询语法错误求助:替换Factor值后求和报错
修正后的SQL语句
SELECT employeeid, COUNT(*) AS count, SUM(CASE factor WHEN 'F' THEN 4 WHEN 'EC' THEN 2 WHEN 'E' THEN 1 ELSE 0 END) AS total_factor FROM employee WHERE employee_id = 100 GROUP BY employeeid
问题点解析
- 列分隔符缺失:原SQL中
employeeid,count(*) as count与后续sum(...)之间未添加逗号,SQL语法要求多列/聚合函数必须用逗号分隔。 - CASE表达式语法错误:CASE语句的
END后不能直接加as factor,别名应定义在SUM函数外层,而非CASE内部。 - GROUP BY子句错误:聚合函数的别名(如
count)不能出现在GROUP BY中;且通过WHERE已指定单个EmployeeID,GROUP BY仅需保留employeeid即可。 - 补充:你的需求中是A=1、B=2、C=3,但当前CASE匹配的是F、EC、E,若为笔误,需将WHEN条件替换为对应值,例如
WHEN 'A' THEN 1、WHEN 'B' THEN 2、WHEN 'C' THEN 3。
内容的提问来源于stack exchange,提问作者developer2015
相关产品推荐
相关产品推荐

