我有一个查询,
SELECT count(*), cdate
FROM tabl
GROUP BY YEAR(cdate), MONTH(cdate), DAY(cdate);
这将返回每日计数,但仅返回列cdate中存在的日期,我希望最近X天的所有天数,包括计数为零的那些天。我该如何实现?
cdate格式为%Y-%m-%d
最佳答案
此查询将仅返回表tabl
中可用的数据。
要获取所有日期的信息,您将需要一些包含日期行的表。通常,我将使用日期维度表并将其与tabl
联接,如下所示:
SELECT ISNULL(count(1), 0), cdate
FROM DimDate D
LEFT JOIN tabl T ON D.Date = T.cdate
GROUP BY YEAR(D.Date), MONTH(D.Date), DAY(D.Date);
关于mysql - mysql每日计数ifnull为零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33354312/