我的查询有问题
SELECT
IFNULL(SUM(a.x), 0) AS x,
IFNULL(COUNT(*), 0) AS num
FROM a AS a
WHERE (a.`time` >= DATE_SUB(CURDATE(), INTERVAL 7 DAY))
GROUP BY DAY(a.time)
没关系,但是当确切的一天没有记录时,这一天都没有回复。我需要返回0。 怎么做?
答案 0 :(得分:5)
SELECT
COALESCE(SUM(a.x), 0) AS x,
COALESCE(COUNT(*), 0) AS num
FROM a AS a
WHERE (a.`time` >= DATE_SUB(CURDATE(), INTERVAL 7 DAY))
GROUP BY DAY(a.time)
COALESCE - 返回列表中的第一个非空值
但是,我认为您应该在处理@ DevZer0建议的数据时处理此问题。