MySQL 按時間統計數據


mysql不同時間粒度下的分組統計

1、測試表數據如下: 

 

 

 

2、MySQL按天分組數據

     DATE() 函數返回日期或日期/時間表達式的日期部分。如下所示:

可以如下Sql展示:

SELECT DATE(time) AS date, COUNT(*) AS num
FROM group_time_test 
GROUP BY date
ORDER BY date desc ;

結果如下所示:

 

 

 3、按分鍾分組如下所示:

  DATE_FORMAT() 函數用於以不同的格式顯示日期/時間數據。

DATE_FORMAT(date,format)

date 參數是合法的日期。format 規定日期/時間的輸出格式。

注:完整的年月日時分秒格式如:%Y-%m-%d %H:%i:%s

測試輸出當前時間如下:

 

 Sql語句可以如下書寫:

SELECT DATE_FORMAT(time, '%Y-%m-%d %H') AS date, COUNT(*) AS num
FROM group_time_test 
GROUP BY date
ORDER BY date desc ;

輸出結果如下:

 

 因為DATE_FORMAT是格式化函數,所以也可以這樣寫

SELECT DATE_FORMAT(time, '%Y-%m-%d %H:00:00') AS date, COUNT(*) AS num
FROM group_time_test 
GROUP BY date
ORDER BY date desc ;

 

 4、分別以年、月、分、秒分組

SELECT DATE_FORMAT(time, '%Y') AS date, COUNT(*) AS num
FROM group_time_test 
GROUP BY date
ORDER BY date desc ;

月:

SELECT DATE_FORMAT(time, '%Y-%m') AS date, COUNT(*) AS num
FROM group_time_test 
GROUP BY date
ORDER BY date desc ;

分:

SELECT DATE_FORMAT(time, '%Y-%m-%d %H:%i') AS date, COUNT(*) AS num
FROM group_time_test 
GROUP BY date
ORDER BY date desc ;

秒:

SELECT DATE_FORMAT(time, '%Y-%m-%d %H:%i:%s') AS date, COUNT(*) AS num
FROM group_time_test 
GROUP BY date
ORDER BY date desc ;

5、帶計算類的時間統計

 需要用到下列方法,依次為年、月、日、時、分、秒、星期

select year(NOW());
select MONTH(NOW());
select DAY(NOW());
select HOUR(NOW());
select MINUTE(NOW());
select SECOND(NOW());
select WEEK(NOW());

5.1 按半小時分組統計

Sql與結果如下:

SELECT DATE_FORMAT(
            concat( date( time ), ' ', HOUR ( time ), ':', floor( MINUTE ( time ) / 30 ) * 30 ),
            '%Y-%m-%d %H:%i' 
        ) AS date ,count(*) 
FROM group_time_test  GROUP BY date ;

 

 其他不一一舉例

 

 

 

 

 

 

 

 

 

 

 

 

 

參考資料:https://blog.csdn.net/u010946448/article/details/83752984


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM