[Mysql] GroupBy 分組,按天、周、月

簡單說明:

  最近在做報表功能的時候,需要將數據按天、周和月進行合併展示(數據記錄都是按天20190701)。

  

正文:

  說明:數據表中date都是int類型:如 20190701

  一、按天

    

SELECT `date`, SUM(`a`)
FROM tb
WHERE 1
GROUP BY `date`

  

  二、按周

    使用WEEK 函數,具體使用可以參考網上資料。這裏使用模式 5,週一作爲每週開始。查詢出來的記錄是

SELECT `date`, SUM(a)
FROM `tb`
WHERE `
GROUP BY WEEK(`date`, 5)

    

date a  
20190701 10  
20190708 55  

 

    按周的查詢結果如上所示:20190701那條記錄,表示從20190701到20190706區間的彙總。

 

  三、按月

    使用YEAR和MONTH函數,根據年和月進行分組彙總。

SELECT CONCAT(YEAR(`date`), MONTH(`date`)) as `date`, SUM(`a`)
FROM `tb`
WHERE 1
GROUP BY YEAR(`date`), MONTH(`date`)

 

date SUM(`a`)  
20197 55  
20198 66  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章