【问题标题】:Finding consecutive days查找连续天数
【发布时间】:2015-11-04 12:36:10
【问题描述】:

我正在尝试编写一个 PHP 脚本,该脚本使用带有变量的 MySQL 数据库计算各种气候参数。除了这个,我能完成大部分工作:

所以我想要的是找到最长的“干燥”时期,即连续几天下雨为 0。然后,类似的事情,一年中第一次至少连续 5 天的时间T 低于 0。

MySQL 表如下所示:

每 5 分钟记录一次降雨,记录每日累积总和,所以要获得每日降雨量,我只需使用 max(R)

表结构(简化) 列:日期时间、T、R

然后行将是例如:

2015-05-01 15:00  13    0
2015-05-01 15:05  13.2  0

在上面的例子中,时间很明显,然后列代表当前温度和当前日累积降雨量。

我现在的目标是找到一个命令,该命令将找到每天 max(R) 为 0(即没有下雨)的最连续天数,然后是第一次连续五天的日期, T 在一天中至少有一次低于 0 (即 min(T)

我现在唯一的想法是在 PHP 中使用一些嵌套循环来执行此操作,但是将其加载到数组中然后循环会耗费大量时间和资源,因此如果可以使用 MySQL,那就太好了。

非常感谢任何帮助,谢谢。

【问题讨论】:

  • 请分享代码
  • SO 不适用于免费编码或免费分析 显示您迄今为止尝试过的内容,因此看起来不像您想要的那样。
  • 表结构可能有点过于简单。一旦您希望使用...计算每日值,至少 date 应该有自己的字段...

标签: php html mysql


【解决方案1】:

我首先尝试按 YEAR(DateTime)、MONTH(DateTime)、DAY(DateTime) 对数据进行分组,然后设置一个条件 WHERE max(R)>0。这基本上给了我一份下雨天的清单。但我不知道现在如何只选择天是连续的时期,如果可能的话。

【讨论】:

  • 这不能回答你的问题,所以你不应该把它作为答案发布。相反,您可以使用这些附加信息更新您的问题。
猜你喜欢
  • 1970-01-01
  • 2022-07-19
  • 1970-01-01
  • 1970-01-01
  • 2012-02-09
  • 1970-01-01
  • 2018-12-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多