Ik heb een tabel 'Views' in mijn database die bijhoudt hoevaak een bepaald item wordt bekeken, en wel in deze vorm:
ID - ItemID - Datum
Ik houd het bij op deze manier (ipv een extra item Views bij de rest van de Item-eigenschappen) omdat ook per (willekeurige) tijdreeks gezien moet kunnen worden hoevaak een bepaald item bekeken is. Door middel van een simpele query
SELECT COUNT(ID) AS AantalViews FROM Views WHERE ItemID = [nummer] AND Month(Datum) = [nummer vd maand] AND Year(Datum) = [jaartal]
met een eventuele extra WHERE-clause erbij kan ik eenvoudig per afzonderlijk item bekijken hoeveel views er per maand zijn geweest. Dit werkt allemaal prima.
Nu wil ik een overzichtspagina genereren; alle items onder elkaar en dan 12 kolommen met het aantal views van elk item in elk van de afgelopen 12 maanden. Ik dacht dit eenvoudig te kunnen doen door gewoon een GROUP BY te gebruiken ...
SELECT COUNT(ID) AS AantalViews FROM Views WHERE Month(Datum) = [nummer vd maand] AND Year(Datum) = [jaartal] GROUP BY ItemID
... zodat ik dus een array zou krijgen, aantal records gelijk aan het aantal unieke items (meer dan 250), waaruit ik zo het aantal pageviews kan aflezen. Helaas, niks is minder waar. In plaats van een array krijg ik gewoon 1 waarde van het totaal aantal views van alle items uit die maand bij elkaar.
Interpreteer ik het GROUP BY verkeerd, of ... ?
Bij voorbaat dank!
ID - ItemID - Datum
Ik houd het bij op deze manier (ipv een extra item Views bij de rest van de Item-eigenschappen) omdat ook per (willekeurige) tijdreeks gezien moet kunnen worden hoevaak een bepaald item bekeken is. Door middel van een simpele query
SELECT COUNT(ID) AS AantalViews FROM Views WHERE ItemID = [nummer] AND Month(Datum) = [nummer vd maand] AND Year(Datum) = [jaartal]
met een eventuele extra WHERE-clause erbij kan ik eenvoudig per afzonderlijk item bekijken hoeveel views er per maand zijn geweest. Dit werkt allemaal prima.
Nu wil ik een overzichtspagina genereren; alle items onder elkaar en dan 12 kolommen met het aantal views van elk item in elk van de afgelopen 12 maanden. Ik dacht dit eenvoudig te kunnen doen door gewoon een GROUP BY te gebruiken ...
SELECT COUNT(ID) AS AantalViews FROM Views WHERE Month(Datum) = [nummer vd maand] AND Year(Datum) = [jaartal] GROUP BY ItemID
... zodat ik dus een array zou krijgen, aantal records gelijk aan het aantal unieke items (meer dan 250), waaruit ik zo het aantal pageviews kan aflezen. Helaas, niks is minder waar. In plaats van een array krijg ik gewoon 1 waarde van het totaal aantal views van alle items uit die maand bij elkaar.
Interpreteer ik het GROUP BY verkeerd, of ... ?
Bij voorbaat dank!
Geef mij maar een Warsteiner.