Ik heb een tabel die statistieken bijhoudt. de tabel houdt voor pagina1, pagina2, pagina3, etc, de hits bij. iedere kolom (op de datum kolom na) is dus een pagina, en iedere rij is een dag.
Nu wil hier uit een resultaten pagina uit maken waarin de statistieken gegroupeerd zijn op week (per dag en per maand lukt al). Daarvoor heb ik onderstaande query opgesteld. Hierbij heb ik alleen het probleem dat 29/31 december 2003 behoren tot week 1 2004. Maar mijn select geeft week 1 van jaar 2003.
Hoe zorg ik er dus voor dat mySQL de week baseert op het jaar?
zonder de GROUP BY clausule is het resultaat als volgt:
Nu wil hier uit een resultaten pagina uit maken waarin de statistieken gegroupeerd zijn op week (per dag en per maand lukt al). Daarvoor heb ik onderstaande query opgesteld. Hierbij heb ik alleen het probleem dat 29/31 december 2003 behoren tot week 1 2004. Maar mijn select geeft week 1 van jaar 2003.
Hoe zorg ik er dus voor dat mySQL de week baseert op het jaar?
code:
1
2
3
4
5
| SELECT SUM(pagina1) AS pagina1, SUM(pagina2) AS pagina2, etc, CONCAT(WEEK(logdate, 3), YEAR(logdate)) AS dateformat, DATE_FORMAT(logdate, 'week %v %Y -- %b %D %Y') AS datedisplay FROM tabel GROUP BY dateformat |
zonder de GROUP BY clausule is het resultaat als volgt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| +-------------------------------+ | datedisplay | +-------------------------------+ | week 02 2004 -- Jan 6th 2004 | | week 02 2004 -- Jan 5th 2004 | | week 01 2004 -- Jan 4th 2004 | | week 01 2004 -- Jan 3rd 2004 | | week 01 2004 -- Jan 2nd 2004 | | week 01 2004 -- Jan 1st 2004 | | week 01 2003 -- Dec 31st 2003 | | week 01 2003 -- Dec 30th 2003 | | week 01 2003 -- Dec 29th 2003 | | week 52 2003 -- Dec 28th 2003 | | week 52 2003 -- Dec 27th 2003 | +-------------------------------+ |
[ Voor 17% gewijzigd door Mark Wegener op 27-02-2004 22:04 ]