I'm really bad at SQL queries but I'm learning so please forgive this question.
Here is my current query:
SELECT TIMESTAMP, SUM( electricity ) AS electricity, `siteID`
FROM table
WHERE (
MONTH( `TimeStamp` ) =10)
GROUP BY siteID
My table looks like:
#########################################
# Id # SiteID # TimeStamp # Elecricity #
# 0 # 100 # 10/08/2012 # 50 #
# 1 # 98 # 10/08/2012 # 32 #
# 2 # 100 # 10/09/2012 # 96 #
# 3 # 94 # 10/09/2012 # 25 #
# 4 # 100 # 10/10/2012 # 100 #
# 5 # 100 # 10/11/2012 # 55 #
#########################################
What I am trying to do is to sum up all of the days of each month of each site, so that I will have one answer per site and month. So in this example the query should return the sum of the electricity values for siteID 100 because they're all in month 10, the same for siteID 98 and 94.
Thanks
Use the MONTH() function to retrieve a month from a date/datetime/timestamp column in MySQL. This function takes only one argument – either an expression which returns a date/datetime/ timestamp value or the name of a date/datetime/timestamp column.
To select all entries from a particular month in MySQL, use the monthname() or month() function.
To group by date part, use the GROUP BY clause and the EXTRACT() function. Pass EXTRACT() the date parts to isolate.
The SQL LIKE Operator There are two wildcards often used in conjunction with the LIKE operator: The percent sign (%) represents zero, one, or multiple characters. The underscore sign (_) represents one, single character.
SELECT month('TIMESTAMP'), SUM( electricity ) AS electricity, `siteID`
FROM table
WHERE (
MONTH( `TimeStamp` ) =10)
GROUP BY siteID, month('TIMESTAMP')
This will work. One thing that you have to think about is that month is not unique. Oct, 2012, in this case, is the same as Oct 2013. You might want to add another column for year.
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