我有這個疑問如何加入,創建日期範圍?
SELECT userId, orgQuery.timeUnit,
@SUM := @SUM + orgQuery.orderValue AS sum,
@COUNT := @COUNT + 1 AS count,
@AVG := @SUM/@COUNT AS avg
FROM (
SELECT userid, orderValue,
DATE_FORMAT(`acceptDate`, '%Y%M') AS timeUnit
FROM `agreements`
WHERE userId = 4
AND acceptDate > 2000-00-00
GROUP BY timeUnit
)
AS orgQuery,
(SELECT @COUNT := 0, @SUM := 0,@AVG :=0)
AS extra GROUP BY timeUnit
輸出:
userId timeUnit sum count avg
4 201001 6000 1 6000.0000
4 201003 12000 2 6000.0000
4 201004 19500 3 6500.0000
但你可以看到,有一些日期之間的差距,我所要的輸出是一個連續的範圍如:
userId timeUnit sum count avg
4 201001 6000 1 6000.0000
4 201002 0 2 3000.0000
4 201003 12000 3 6000.0000
4 201004 19500 4 4875.0000
此查詢
(SELECT DATE_FORMAT(`acceptDate`, '%Y%M') AS timeUnit FROM `agreements` GROUP BY timeUnit)
輸出完整的日期範圍,但是當我嘗試左連接兩個Querys時,計數和平均值都被搞砸了。我如何得到結果正在尋找?
是否表'agreements'有TIMEUNIT的字段值201002?該查詢可能取決於此。 – SubRed