你好我有一个SQL问题,我得到的结果,但我想要的是开始15分钟。
这是我当前的查询:
SELECT CONCAT(CAST(DATE_FORMAT(date_added, '%h') AS CHAR(2)), ':',
CAST(DATE_FORMAT(date_added, '%m') AS CHAR(2))) timer,
COUNT(*) ctrRes from tbl1 WHERE id = 1 AND cat = 2
GROUP BY ( 3 * HOUR( date_added ) + FLOOR( MINUTE( date_added ) / 15 ))
示例结果:
计时器| ctrRes
01:28 | 1
01:44 | 22
02:14 | 253
02:29 | 238
有没有办法让记录从00:15开始,无论空结果如何。感谢。
答案 0 :(得分:0)
看起来你想要返回一条记录,无论某个时间段是什么。好吧,MySQL必须有一些东西可以返回。 SQL用于检索数据,而不是生成数据,因此如果数据不存在,则无法获取数据。因此,您需要一些方法来创建数据,以便您可以检索它。
您可以在每次查询时临时创建此数据,也可以在实际表中实现数据。如果您经常运行此查询,我建议您实现数据。有一个关于创建日期的示例:https://gist.github.com/johngrimes/408559您可以自定义它以生成时间而不是日期。
然后结果变成:
select * from TimeTable left join tbl1 on ... where <some range criteria>