本系列文章均為實(shí)際工作中遇到的場景,以此記錄下來,共同進(jìn)步构蹬,更愉悅的工作。
這次的sql語句可以優(yōu)雅的基于某個時間格式來進(jìn)行聚合悔据,生成一系列的時間序列的值庄敛。
關(guān)鍵函數(shù)
- date_format()
- year()
- month()
- dayofmonth()
- ...
假設(shè)我們的表中有一個字段生產(chǎn)日期叫production_date是datetime格式的,現(xiàn)在需要按照天計(jì)算商品的總數(shù)科汗,并且基于日期從小到大排序藻烤,語句如下:
SELECT DATE_FORMAT(`production_date`, '%Y/%m/%d 00:00:00') AS x, COUNT(*) AS y
FROM `production`
GROUP BY YEAR(`production_date`), MONTH(`production_date`), DAYOFMONTH(`production_date`)
ORDER BY x;
還有一個簡單一些的方法是直接group by x
SELECT DATE_FORMAT(`production_date`, '%Y/%m/%d 00:00:00') AS x, COUNT(*) AS y
FROM `production`
GROUP BY x
ORDER BY x;
mysql日期函數(shù)用法鏈接
https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html