簡單說明:
最近在做報表功能的時候,需要將數據按天、周和月進行合併展示(數據記錄都是按天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 |