Mysql查询使用where和group by子句

时间:2010-02-24 09:28:12

标签: mysql

我有下表。

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'附近使用的语法

2 个答案:

答案 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';

问候。