Poniżej otrzymasz próbkę składającą się z dowolnych danych ze znacznikiem czasu :00, :05, :10 ...
SELECT time, temp_out FROM wmr200 WHERE date(time) = curdate()
AND mod(minute(time),5) = 0
Używam funkcji modulo, aby sprawdzić, czy minutowa część czasu jest podzielna (0 lub) przez 5.
Jeśli potrzebujesz tylko jednego wyniku dla każdego segmentu czasowego, musimy zrobić coś bardziej złożonego.
SELECT concat(date(time),' ',hour(time),':',round(minute(time)/5,0)*5),
min(temp_out), avg(temp_out), max(temp_out)
FROM wmr200
GROUP BY date(time), hour(time), round(minute(time)/5,0)*5
Nie mam dostępu do instancji MySQL, aby ją teraz przetestować, ale oto pomysł. Grupuje co pięć minut, grupując według daty, godziny i round(minute(time)/5,0)*5
- co zaokrągla minutę do najbliższej 5.
Wybiera wartość czasu, wokół którego powinna być zgrupowana, oraz min, avg i max temp_out, ponieważ nie byłem pewien, które z nich najlepiej pasują do Twojej sytuacji.
Jeśli jednak Twoja baza danych nie ma danych dla pięciominutowego rozciągania (lub 30-minutowego rozciągania, jeśli tego właśnie używasz), nadal może nie mieć danych dla punktu próbkowania.