Следното ще ви предостави извадка, състояща се от всякакви данни с времева марка в :00, :05, :10 ...
SELECT time, temp_out FROM wmr200 WHERE date(time) = curdate()
AND mod(minute(time),5) = 0
Използвам модулната функция, за да проверя дали минутната част от времето е (0 или) се дели на 5.
Ако имате нужда само от един резултат за всеки времеви сегмент, трябва да станем доста по-сложни.
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
Нямам достъп до MySQL екземпляр, за да го тествам в момента, но ето идеята. Групира се на всеки пет минути, като се групира по дата, час и round(minute(time)/5,0)*5
- което закръглява минута до най-близките 5.
Той избира стойността на времето, около която трябва да бъде групирана, и min, avg и max temp_out, тъй като не бях сигурен кое от тях ще се приложи най-добре към вашата ситуация.
Ако обаче вашата БД няма данни за пет минути (или 30 минути, ако това е, което използвате), тя пак може да няма данни за точка на извадка.