我有下表。
mysql> select * from consumer9;
+------------+--------------+-------------------+
| Service_ID | Service_Type | consumer_feedback |
+------------+--------------+-------------------+
| 100 | Computing | -1 |
| 35 | Printer | 0 |
| 73 | Computing | -1 |
| 50 | Data | 0 |
+------------+--------------+-------------------+
我想在我的项目中使用GROUP BY
子句。我在使用查询时遇到错误:
SELECT Service_ID, Service_Type, SUM(consumer_feedback)
FROM consumer9
GROUP BY Service_ID
WHERE Service_Type=Printer;
错误
错误1064(42000):您的SQL语法有错误;检查 手册,对应右边的MySQL服务器版本 在第1行的'where Service_Type = Printer'附近使用的语法
答案 0 :(得分:26)
以下查询应该有效。
select Service_ID, Service_Type, sum(consumer_feedback)
from consumer9
where Service_Type=Printer
group by Service_ID, Service_Type;
请记住,where子句在group by子句之前,select部分中的所有非聚合术语都必须出现在group by子句中。
答案 1 :(得分:6)
使用having
子句代替where
SELECT Service_ID, Service_Type, SUM(consumer_feedback)
FROM consumer9
GROUP BY Service_ID
HAVING Service_Type='Printer';
问候。