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

Cara mengelompokkan catatan basis data ke dalam interval waktu 15 menit

Pertama-tama, Anda memiliki kesalahan kecil di WHERE ayat. Anda membutuhkan:

where access_time >= '2013-05-28 02:00:00' 
  and access_time < '2013-05-28 10:00:00'

karena rentang seperempat jam Anda berjalan dari waktu tertentu hingga saat sebelum waktu tertentu lainnya. Anda membutuhkan < , bukan <= , untuk akhir rentang waktu Anda.

Kemudian, Anda memerlukan ekspresi yang dapat mengambil DATETIME arbitrer ekspresi dan mengubahnya menjadi DATETIME dari awal seperempat jam di mana itu terjadi.

Ini akan melakukannya.

DATE_FORMAT(datestamp,'%Y-%m-%d %H:00:00') +
            INTERVAL (MINUTE(datestamp) -
                      MINUTE(datestamp) MOD 15) MINUTE

Ternyata, misalnya '2014-05-07 14:53:22' , ke '2014-05-07 14:45:00' .

Anda dapat mendefinisikannya sebagai fungsi tersimpan seperti ini jika Anda suka:

DELIMITER $$
DROP FUNCTION IF EXISTS `TRUNC_15_MINUTES`$$
CREATE  FUNCTION `TRUNC_15_MINUTES`(datestamp DATETIME) 
                 RETURNS DATETIME
    NO SQL
    DETERMINISTIC
    RETURN DATE_FORMAT(datestamp,'%Y-%m-%d %H:00:00') +
                INTERVAL (MINUTE(datestamp) -
                          MINUTE(datestamp) MOD 15) MINUTE$$
DELIMITER ;

Anda kemudian dapat menulis kueri Anda seperti ini:

 select TRUNC_15_MINUTES(access_time) AS period_starting,
        user, count(user) as users 
   from user_access
 where access_time >= '2013-05-28 02:00:00' 
   and access_time <  '2013-05-28 10:00:00'
 group by TRUNC_15_MINUTES(access_time), user
 order by TRUNC_15_MINUTES(access_time), user

Ini tertulis di sini. http://www.plumislandmedia.net/mysql/sql-reporting- interval waktu/



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengekspor hasil kueri di MySQL Workbench melebihi 1000 catatan

  2. Menggunakan FORCE INDEX dengan zend

  3. Hapus baris jika tabel ada SQL

  4. Konversi SQL ke SQL alkimia

  5. Manakah dari 2 pengaturan database ini yang harus saya pilih?