我正在尝试实现一个查询,其中我使用聚合来对某些值求和,然后按mysql日期函数(月|年|星期)进行分组。由于显而易见的原因,这些group by子句不会分别返回非存在月或年或OR周。我想知道是否有办法获得它们?
答案 0 :(得分:0)
您需要创建一个虚拟表:
CREATE TABLE t_dummy (num int PRIMARY KEY);
,填写并在OUTER JOIN
:
SELECT @start + INTERVAL num DAY, SUM(mytable.value)
FROM t_dummy
LEFT JOIN
mytable
ON mytable.datetime >= @start + INTERVAL num DAY
AND mytable.datetime < @start + INTERVAL num + 1 DAY
WHERE t_dummy.num BETWEEN @start and @start + @days
您需要在虚拟表中提供尽可能多的结果NUM
,以及报告要覆盖的天数。
答案 1 :(得分:0)
解决方案是否必须完全在MySQL中?如果它是对Web应用程序的查询,那么我会对Web应用程序进行编码以查找缺少的行并将它们插入到输出数据中。