【发布时间】:2020-10-05 10:38:55
【问题描述】:
我需要计算日期之间的所有文章。我使用了IFNULL(COUNT(*), 0),它返回null。
SELECT posts_count, dates.fulldate
FROM dates
LEFT JOIN
(SELECT IFNULL(COUNT(post_id), 0) AS posts_count, DATE_FORMAT(post_created_at, "%Y-%m-%d") AS pdate
FROM posts
WHERE DATE_FORMAT(post_created_at, "%Y-%m-%d") BETWEEN NOW() - INTERVAL 31 DAY AND NOW()
GROUP BY DATE_FORMAT(post_created_at, "%Y-%m-%d")) t
ON t.pdate = dates.fulldate
WHERE dates.fulldate BETWEEN CURDATE() - INTERVAL 31 DAY AND CURDATE() ORDER BY dates.fulldate ASC;
结果是:
NULL | 2020-05-20
NULL | 2020-05-21
NULL | 2020-05-22
7634 | 2020-05-23
51224 | 2020-05-24
我想要的结果:
0 | 2020-06-16
1233 | 2020-06-15
4354 | 2020-06-14
0 | 2020-06-13
0 | 2020-06-12
【问题讨论】:
-
能否添加结果的数据源?
标签: mysql sql count aggregate-functions date-arithmetic