Následující text vám poskytne ukázku skládající se z jakýchkoli dat s časovým razítkem v :00, :05, :10 ...
SELECT time, temp_out FROM wmr200 WHERE date(time) = curdate()
AND mod(minute(time),5) = 0
Používám funkci modulo ke kontrole, zda je minutová část času (0 nebo) dělitelná 5.
Pokud potřebujete pouze jeden výsledek pro každý časový úsek, musíme být trochu složitější.
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
Nemám teď přístup k instanci MySQL, abych to otestoval, ale tady je nápad. Seskupuje se každých pět minut, seskupuje se podle data, hodiny a round(minute(time)/5,0)*5
- která zaokrouhluje minuty na nejbližších 5.
Vybírá hodnotu času, kolem které by měla být seskupena, a minimální, prům a maximální temp_out, protože jsem si nebyl jistý, která z nich by nejlépe vyhovovala vaší situaci.
Pokud však vaše DB nemá data pro pětiminutový úsek (nebo 30minutový úsek, pokud to používáte), stále nemusí mít data pro vzorový bod.