gpt4 book ai didi

mysql - 如何填写范围内缺失的日期

转载 作者:行者123 更新时间:2023-11-30 23:28:44 25 4
gpt4 key购买 nike

在 MySQL 中我有这个查询:

SELECT COUNT( * ) AS `total` , DAYOFYEAR( FROM_UNIXTIME( unixtimeissued ) ) AS `dayOfYear` , YEAR( FROM_UNIXTIME( unixtimeissued ) ) AS `year`
FROM flex_information
WHERE unixtimeissued >= 'giventime'
GROUP BY dayOfYear, year
ORDER BY year, dayOfYear
LIMIT 0 , 300

这工作正常,除了我找不到在特定日期没有条目的地方插入 0 计数的方法。即,如果没有“6/13/2012”的条目,我希望它返回该日期的“总计”为 0。

编辑:此数据将用于绘制折线图,​​因此我需要将 0 计数与日期配对才能成功显示准确的图表 - 我可以在 PHP 中填写零值但是 MySQL 查询的系统密集度要低得多。

我找到了这个答案:MySQL how to fill missing dates in range? :我现在有一个“数字”表,但无法成功地使解决方案适应我的查询。我假设的一些速记语法让我很难理解这些概念。

最佳答案

通过执行上述选择,您将确切知道何时找到零结果。所有应该需要发生的是范围的比较。例如,如果您返回以下记录:

ID     DATE   
1 JUN first
2 JUN second
3 JUN fifth
4 JUN sixth

很明显,JUN third 和 JUN fourth 没有条目,因此默认情况下它们为零。应该可以通过函数找到这些值的范围。

更新

如果模式被修改成这样你就可以解决这个问题:

ID, DATE, COUNT

通过跟踪数据库中的计数,可以随时获得该数字。应该注意的是,如果要进行许多更新,随着表的增长,该过程将变得非常耗时。

关于mysql - 如何填写范围内缺失的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11779111/

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