Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL:zapytanie wybierające, przyrost 5 minut

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wydajność wielokrotnego wstawiania MySQL

  2. Pole MySQL DATE z domyślnym CURDATE(). NIE DATA GODZINA

  3. Tworzenie formularza wyszukiwania w PHP do przeszukiwania bazy danych?

  4. Jak wykonać pogrupowany ranking w MySQL

  5. Narzędzie importu Excel CSV