gpt4 book ai didi

sql - 如何让 GROUP BY 和 COUNT 包含零和?

转载 作者:IT王子 更新时间:2023-10-29 06:20:46 26 4
gpt4 key购买 nike

我有这样的 SQL($ytoday 是 5 天前):

$sql = 'SELECT Count(*), created_at FROM People WHERE created_at >= "'. $ytoday .'" AND GROUP BY DATE(created_at)';

我希望它每天返回一个值,因此在这种情况下(5 天前到今天)它会返回 5 个结果。

但是如果昨天的 Count(*) 为 0,则它不会返回该日期的任何数据,而不是返回零。

如何更改该 SQLite 查询,使其也返回计数为 0 的数据?

最佳答案

如果没有复杂的(在我看来)查询,您的输出数据集将不会包含输入数据集中不存在的日期。这意味着您需要一个包含 5 天加入的数据集。

简单的版本是创建一个包含 5 个日期的表,然后加入该表。我通常会创建并保留(有效缓存)一个日历表,其中包含我可能需要的每个日期。 (例如从 1900-01-01 到 2099-12-31。)

SELECT
calendar.calendar_date,
Count(People.created_at)
FROM
Calendar
LEFT JOIN
People
ON Calendar.calendar_date = People.created_at
WHERE
Calendar.calendar_date >= '2012-05-01'
GROUP BY
Calendar.calendar_date

关于sql - 如何让 GROUP BY 和 COUNT 包含零和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10586746/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com