Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL:pilih kueri, kenaikan 5 menit

Berikut ini akan memberi Anda sampel yang terdiri dari data apa pun dengan stempel waktu di :00, :05, :10 ...

SELECT time, temp_out FROM wmr200 WHERE date(time) = curdate()
    AND mod(minute(time),5) = 0

Saya menggunakan fungsi modulo untuk memeriksa apakah bagian menit dari waktu (0 atau) habis dibagi 5.

Jika Anda hanya membutuhkan satu hasil untuk setiap segmen waktu, kita harus mendapatkan hasil yang sedikit lebih rumit.

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

Saya tidak memiliki akses ke instance MySQL untuk mengujinya sekarang, tetapi inilah idenya. Ini mengelompokkan setiap lima menit, dengan mengelompokkan berdasarkan tanggal, jam, dan round(minute(time)/5,0)*5 - yang membulatkan menit ke 5 terdekat.

Ini memilih nilai waktu yang harus dikelompokkan, dan min, avg, dan max temp_out, karena saya tidak yakin mana yang paling sesuai untuk situasi Anda.

Namun, jika DB Anda tidak memiliki data untuk rentang lima menit (atau rentang 30 menit, jika itu yang Anda gunakan), DB mungkin masih belum memiliki data untuk titik sampel.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tidak dapat mengeluarkan pernyataan manipulasi data dengan executeQuery()

  2. Zend_Db:Bagaimana cara mendapatkan jumlah baris dari sebuah tabel?

  3. MySQL Tampilkan Kamus Data tabel

  4. File /var/lib/mysql/mysql.sock tidak ada

  5. Pesan kesalahan MySQL Syntax Operand harus berisi 1 kolom