2011-01-14 6 views
0

Ich bin neu in SQL Datetime.SQL-Anweisung, um die häufigsten Stunden und/oder Perioden für einen Benutzer zu erhalten

In Anbetracht meiner Daten in MySQL mit Datetime-Daten (wie unten zu sehen), Was ist der beste Weg, um die am häufigsten vorkommende Stunde oder Bereich/Zeitraum für diese Datensätze für einen bestimmten Benutzer (d. H. John) zu bekommen?

ID  | Datetime   | User  | Activity 
0 2010-03-29 13:15:56  john   visit 
1 2010-03-29 13:13:14  ariel  visit 
2 2010-03-29 13:09:13  john   visit 
3 2010-03-29 13:07:21  john   visit 
4 2010-02-23 12:21:03  john   visit 
5 2010-02-23 12:01:03  john   visit 
6 2010-02-23 11:01:03  john   visit 
7 2010-02-23 02:01:03  john   visit 

Mit den obigen Daten die häufige Stunde für john tun Besuch würde , während Zeitraum vielleicht 12-13 sein würde.

Ziel ist es, den Zeitraum zu finden, in dem der Benutzer eine bestimmte Aktivität am meisten ausführt.

Vielen Dank im Voraus für alle Hilfe!

+0

Welche RDBMS verwenden Sie? – lweller

+0

kein atm - denkst du, ich sollte anfangen, mich damit zu beschäftigen? – sprion

+0

Die Antwort, die ich gepostet habe, wird auf die meisten populären RDBMS geschrieben, aber Sie müssen die richtige Funktion auswählen, die anders sein kann, wenn Sie nicht oracle verwenden – lweller

Antwort

0

mit Orakel Sie so etwas wie

select TO_CHAR(Datetime, 'HH24'), count(ID) from Table group by TO_CHAR(Datetime, 'HH24') 

auf andere schreiben RDBMS verwenden äquivalente Funktionen zum Extrahieren von Stunden aus dem Datetime-Feld.