Statistik erstellen
Andi
- datenbank
Hallo Forumer!
Ich möchte aus einer Datenbank eine Statistik generieren.
In meiner Datenbank werden die Zugriffe pro Tageszeit abgespeichert. Nun möchte ich pro Stunde die Zugriffe zählen also von 11:00-12:00 Uhr und von 13:00-14:00 Uhr usw.
Habe aber gar keine Plan wie ich das anstellen soll. Der Datentyp in der Datenbank is datetime.
Danke für jede Hilfe.
Grüsse
Andi
Halihallo Andi
Ich möchte aus einer Datenbank eine Statistik generieren.
In meiner Datenbank werden die Zugriffe pro Tageszeit abgespeichert.
Das ist IMHO Speicherverschwendung, warum brauchst du sie derart
tief aufgeschlüsselt? - Würde es nicht reichen, alle Daten stündlich
zusammenzufassen?
Nun möchte ich pro Stunde die Zugriffe zählen also von 11:00-12:00 Uhr und von 13:00-14:00 Uhr usw.
Welches RDBMS?
In etwa so:
SELECT HOUR(rep_datetime), AVG(rep_pageviews)
FROM pageviews_table
GROUP BY HOUR(rep_datetime)
falls die Pageviews pro Stunde aufsummiert werden sollen, nimm
SUM statt AVG, aber eine Aufsummierung macht IMHO keinen Sinn und
ist nur verwirrend. Die wichtige Information ist: Wieviele Pageviews
pro Stunde im _Durchschnitt_.
Viele Grüsse
Philipp
Hi Hasenfratz!
Ich habs mal so probiert aber deine Query ist noch besser:
SELECT COUNT(*)
FROM Stat
WHERE CSDate > '2004-05-12 09:44:11'
AND DATE_FORMAT(CSDate,"%H:%i:%s") BETWEEN '12:00:00' AND '13:00:00'
GROUP BY RID
Danke
Andi
Halihallo Andi
Hi Hasenfratz!
Mein Name ist Philipp, oder ein 'Herr' vor 'Hasenfratz'.
SELECT COUNT(*)
Du speicherst jeden einzelnen Zugriff auf die Seite? - Damit wirst
du schnell an Grenzen kommen, zumal ich auch vermute, dass bei jedem
Zugriff eine Datenbankverbindung geöffnet und geschlossen wird...
FROM Stat
WHERE CSDate > '2004-05-12 09:44:11'
AND DATE_FORMAT(CSDate,"%H:%i:%s") BETWEEN '12:00:00' AND '13:00:00'
GROUP BY RID
Geht es lediglich um 12-13, oder um eine ganztägliche Aufschlüsselung
jeder Stunde? - Dann macht ein GROUP BY RID, HOUR wesentlich mehr
Sinn, als jede Stunde separat abzufragen (24 Queries kosten Zeit und
schaffen redundante Abfragen in der Datenbank).
Viele Grüsse
Philipp
Hi
Für solche Auswertungen sind die Funktionen MAX, MIN, AVG, SUM und COUNT sehr nützlich, sowie die GROUP BY-Klausel mit HAVING-Einschränkung. Je nach DBMS kann die Syntax aber varieren.
FG
Tom2