I apologize if this has been asked before.. I’m very new to developing and although I’ve tried searching a lot, I’m not really sure what to look for.
Anyway so I have a table which counts records being entered per day. It looks something like this (each record is represented by a letter) (assume today’s date is 27/01/2013):
RECORD | COUNT | DATE
------A-----|-----4-----|27/01/2013
------B-----|-----7-----|27/01/2013
------B-----|-----3-----|24/01/2013
------C-----|-----8-----|22/01/2013
------A-----|-----2-----|19/01/2013
Each new post is checked in the table and it updates the count if the record already exists on the current day, otherwise a new record is created.
For the page which prints the records which have been added ‘TODAY’, I have the MySQL query
SELECT * FROM `table` ORDER BY `date` DESC, `count` DESC LIMIT 1000
and use a php ‘if’ statement to only print the records where the date(‘Y-m-d’) = date in the table. So only the records and the corresponding count which has been entered that day are printed.
– the table above would produce the result:
1. B 7
2. A 4
What I would like is a page which prints the records which have been entered in the last week. I know I can use DATE_SUB(now(),INTERVAL 1 WEEK) AND NOW(), to print the records from last week but I need to duplicate records to be combined and the counts added together.. so the result for this table would look like this:
1. B 10
2. C 8
3. A 4
How would I go about combining those duplicate records and have a list of records ordered by count? Is this the best method to get a ‘last week’ record count, or is there another table structure which would be better?
Again I’m sorry if this a silly question or if my explanation was long-winded, but just some simple pointers will be really appreciated.
Try this
And you can
LIMIT 1000grouped resultset if you need to