数据分析sql技能之时间序列

本系列文章均为实际工作中遇到的场景,以此记录下来,共同进步,更愉悦的工作。

这次的sql语句可以优雅的基于某个时间格式来进行聚合,生成一系列的时间序列的值。

关键函数

  • date_format()
  • year()
  • month()
  • dayofmonth()
  • ...

假设我们的表中有一个字段生产日期叫production_date是datetime格式的,现在需要按照天计算商品的总数,并且基于日期从小到大排序,语句如下:

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日期函数用法链接

https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html

你可能感兴趣的:(数据分析sql技能之时间序列)