Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Grupowanie co X minut, niezależnie czy istnieją rekordy
Forum PHP.pl > Forum > Bazy danych > MySQL
peku33
Witacje

Posiadam taką tabelkę:

Id [Int] | Date [Timestamp] | Jakaś liczba | Jakaś kolejna liczba

Chciałbym stworzyć zapytanie, które zwróciłoby średnią wartość pól liczbowych z całego dnia, pogrupowane co 15 minut. Domyślam się, że żeby zgrupować co 15 czy 20 minut, wystarczy użyć jakiejś funkcji aka GROUP BY FLOOR(MINUTES(Date) / 15).

Tylko pytanie: co zrobić, żeby występowały także rekordy do których nie pasuje żadna data. Powiedzy, że od 02:00 do 03:00 nie ma żadnego rekordu, to jak uzyskać

Time | Avg(col1) | Avg(col2)
02:00 | null / 0 | null / 0
02:15 | null / 0 | null / 0
02:30 | null / 0 | null / 0
02:45 | null / 0 | null / 0
03:00 | null / 0 | null / 0

Jakaś pętla i JOIN?
maly_swd
najprosciej zrob pomocnicza tabele z przedzialami
0
15
30
45
60
75 ...

pozniej robisz select from tabela_pomocnicza
left join twoje dane on tabelapomocniza.value=floor(,.../15)

i powinno byc ok..
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.