![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 5 Dołączył: 22.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
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? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) ![]() ![]() |
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.. -------------------- śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu.. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 05:32 |