sql计算每年和每月,甚至在零时显示月份

时间:2017-05-17 12:05:13

标签: mysql

所以我在年初和当前时间之间计算每年/每月的文章:

SELECT Year(FROM_UNIXTIME(date)) as year
     , Month(FROM_UNIXTIME(date)) as month
     , Count(*) as `total` 
  FROM articles 
 WHERE date BETWEEN UNIX_TIMESTAMP(DATE('2017-01-01 00:00:00')) AND UNIX_TIMESTAMP(DATE('2017-05-17 12:00:05')) 
 GROUP 
    BY Year(FROM_UNIXTIME(date))
     , Month(FROM_UNIXTIME(date))

唯一的问题是,零月的月份不会出现。

有一个简单的方法吗?

1 个答案:

答案 0 :(得分:0)

我能想到的最佳解决方案是使用包含月份1-12的查找表进行内部联接。因此验证总会有12个月的结果集? 可能无法超越当前日期月份的限制,因此您实际上并不总是获得全年。

看这里: Include missing months in Group By query