Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL:изберете заявка, увеличение от 5 минути

Следното ще ви предостави извадка, състояща се от всякакви данни с времева марка в :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 минути, ако това е, което използвате), тя пак може да няма данни за точка на извадка.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQLi не успява да подготви изявление

  2. Проблем с достъпа до магазина:Не мога да прочета стари, вече съхранени json обекти, сериализирани (хеш) стойности в mysql база данни в Rails 4

  3. Как да активирате MySQL Query Cache

  4. Инструкция UPDATE за повторно присвояване на стойност на колона според числова формула

  5. Изтегляне на MySQL dump от командния ред