在MySQL中我有这个疑问:如何填写缺少的日期范围内
SELECT COUNT(*) AS `total` , DAYOFYEAR(FROM_UNIXTIME(unixtimeissued)) AS `dayOfYear` , YEAR(FROM_UNIXTIME(unixtimeissued)) AS `year`
FROM flex_information
WHERE unixtimeissued >= 'giventime'
GROUP BY dayOfYear, year
ORDER BY year, dayOfYear
LIMIT 0 , 300
这工作,只是我无法找到一个方法来插入0计数,其中有特定日期没有条目罚款。即如果'2012年6月13日'没有条目,我希望它在该日期返回'总'0。
编辑:这个数据将被用于绘制折线图,所以我将需要0个计数与日期配对,以便成功显示一个精确的图表 - 我可能在PHP中填写零值,但是一个MySQL查询系统密集程度要低得多。
我发现这个答案:MySQL how to fill missing dates in range?:我现在有一个'数字'表,但一直无法成功地适应我的查询解决方案。我假设的一些简写语法让我很难理解这些概念。
你是什么意思插入0计数?如果查询返回的内容没有任何内容可以插入 – Woot4Moo 2012-08-02 14:05:47
MySQL是否有CTE或类似的东西?如果是这样 - 查看这个解决方案http://codecorner.galanter.net/2011/08/29/tsql-filling-missing-date-range/(它是用TSQL方言完成的)。即使它不,我认为你可以通过使用子查询来适应解决方案 – 2012-08-02 14:09:15
感谢您的快速响应。 @ Woot4Moo,我已经更新了我的问题,试图澄清。现在清楚了吗? – 2012-08-02 14:10:55