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
Absolutely. It will result in filtering the records on your date range and then grouping it by each day where there is data.
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.
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With