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

Как да групирате записи на базата данни в 15-минутни интервали от време

На първо място, имате фина грешка във вашия WHERE клауза. Нуждаете се от:

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

защото вашите четвъртчасови диапазони се изпълняват от определено време до момента преди друг конкретен път. Трябва ви < , а не <= , за края на вашия период от време.

След това се нуждаете от израз, който може да приеме произволен DATETIME израз и го преобразувайте в DATETIME от началото на четвърт час, в който се случва.

Това ще направи това.

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

Оказва се, например '2014-05-07 14:53:22' , в '2014-05-07 14:45:00' .

Можете да го дефинирате като съхранена функция като тази, ако желаете:

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 ;

След това можете да напишете заявката си така:

 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

Това е написано тук. http://www.plumislandmedia.net/mysql/sql-reporting- времеви интервали/



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да генерирате тази SQL заявка като централна таблица

  2. Как да намерите редове, които имат стойност, която съдържа малка буква

  3. Grails 3 - Gradle зависимости Mysql конектор

  4. Как да приложим песимистично заключване в php/mysql уеб приложение?

  5. MySQL:IF таблица съществува, съкратете и вмъкнете ELSE създайте