2009-09-21 12 views
12

Mam tabelę zawierającą dzienniki dostępu. Chcę wiedzieć, ile wejść do resource_id "123" wystąpiło w każdej godzinie w ciągu 24-godzinnego dnia.Pobieranie wierszy pogrupowanych według godziny za pomocą MySQL

Moja pierwsza myśl do pobierania tych informacji jest po prostu zapętlenie poprzez każdą godzinę i odpytywanie tabeli w każdej pętli z czymś takim ... and time like '$hour:%', biorąc pod uwagę, że pole time przechowuje dane w formacie 15:47:55.

Czy jest sposób, w jaki mogę group by godzin i pobrać co godzinę i liczbę wierszy w ciągu każdej godziny w jednym zapytaniu?

Baza danych to MySQL, język to PHP.

+0

to kolumna "czas" w formacie datetime? – Zenshai

+0

Proszę po strukturze bazy danych - czy masz "DATETIME" na czas dostępu? – Josh

+0

@Zenshai pokonałeś mnie 41 sekund :-) – Josh

Odpowiedz

34
SELECT HOUR(MyDatetimeColumn) AS h, COUNT(*) 
FROM MyTable 
GROUP BY h; 
3

Możesz użyć funkcji HOUR, aby uzyskać godzinę poza godzinami. Wtedy powinieneś być w stanie grupować przez to.

Powiązane problemy