[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  

 


免責聲明!

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



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