Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Mysql query using where and group by clause

Tags:

I have the following table.

mysql> select * from consumer9; +------------+--------------+-------------------+ | Service_ID | Service_Type | consumer_feedback | +------------+--------------+-------------------+ |        100 | Computing    |                -1 | |         35 | Printer      |                 0 | |         73 | Computing    |                -1 | |         50 | Data         |                 0 | +------------+--------------+-------------------+ 

I want to use GROUP BY clause in my project. I am getting an error when I am using the query:

SELECT  Service_ID, Service_Type, SUM(consumer_feedback)  FROM consumer9  GROUP BY Service_ID  WHERE Service_Type=Printer; 

Error

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where Service_Type=Printer' at line 1

like image 846
S.PRATHIBA Avatar asked Feb 24 '10 09:02

S.PRATHIBA


People also ask

Can we use WHERE and GROUP BY clause together?

Absolutely. It will result in filtering the records on your date range and then grouping it by each day where there is data.

Can I use WHERE by clause after GROUP BY?

GROUP BY Clause is utilized with the SELECT statement. GROUP BY aggregates the results on the basis of selected column: COUNT, MAX, MIN, SUM, AVG, etc. GROUP BY returns only one result per group of data. GROUP BY Clause always follows the WHERE Clause.

How do you use GROUP BY and WHERE?

WHERE is used to filter records before any groupings take place that is on single rows. GROUP BY aggregates/ groups the rows and returns the summary for each group. HAVING is used to filter values after they have been groups.


1 Answers

The following query should work.

select Service_ID, Service_Type, sum(consumer_feedback)  from consumer9  where Service_Type=Printer group by Service_ID, Service_Type; 

Remember, the where clause goes before the group by clause and all non-aggregated terms in the select part will have to be present in the group by clause.

like image 178
a'r Avatar answered Jun 05 '23 07:06

a'r