Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 从一个带有时间戳的表中获取最大值,再从另一个表中获取一段时间内的3秒_Mysql_Sql - Fatal编程技术网

Mysql 从一个带有时间戳的表中获取最大值,再从另一个表中获取一段时间内的3秒

Mysql 从一个带有时间戳的表中获取最大值,再从另一个表中获取一段时间内的3秒,mysql,sql,Mysql,Sql,当hopper2_设定点_满足表值为1时,我需要用TimeStr值显示EndTime,当设定点满足表值为1时,我需要从TimeStr+3秒开始,以hopper2_liveweight表的最大值显示权重 期望结果示例 数据和我的尝试 您可以从本文中访问这些数据,我在这里构建了模式并插入了数据的一小部分,或者如果您想用它在自己的MySQL数据库表上创建数据,那么这里也有相应的SQL CREATE TABLE `hopper2_setpoint_met` ( `TimeStr` datetime

当hopper2_设定点_满足表值为1时,我需要用TimeStr值显示EndTime,当设定点满足表值为1时,我需要从TimeStr+3秒开始,以hopper2_liveweight表的最大值显示权重

期望结果示例

数据和我的尝试 您可以从本文中访问这些数据,我在这里构建了模式并插入了数据的一小部分,或者如果您想用它在自己的MySQL数据库表上创建数据,那么这里也有相应的SQL

CREATE TABLE `hopper2_setpoint_met` (
  `TimeStr` datetime NOT NULL,
  `Value` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `hopper2_setpoint_met` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:02:33',1);
INSERT INTO `hopper2_setpoint_met` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:03:51',0);
INSERT INTO `hopper2_setpoint_met` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:45',1);
INSERT INTO `hopper2_setpoint_met` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:05:56',0);
INSERT INTO `hopper2_setpoint_met` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:49',1);

CREATE TABLE `hopper2_liveweight` (
  `TimeStr` datetime NOT NULL,
  `Value` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:02:33',292);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:02:34',298);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:02:35',300);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:02:36',300);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:14',106);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:15',111);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:16',116);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:17',123);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:19',132);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:20',142);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:21',148);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:22',154);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:23',160);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:24',166);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:25',172);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:26',177);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:27',184);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:29',190);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:30',195);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:31',201);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:32',208);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:33',213);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:34',220);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:35',226);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:36',232);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:37',239);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:38',244);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:39',251);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:40',257);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:41',263);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:42',269);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:43',276);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:44',282);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:45',288);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:46',293);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:47',299);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:04:48',299);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:18',108);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:19',112);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:20',117);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:21',123);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:22',128);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:23',135);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:24',141);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:25',148);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:26',154);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:27',160);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:28',165);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:29',172);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:30',177);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:31',183);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:32',190);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:33',196);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:34',201);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:35',208);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:36',213);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:37',220);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:38',226);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:39',231);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:40',237);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:41',242);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:42',248);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:43',254);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:44',262);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:45',269);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:46',276);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:47',282);
INSERT INTO `hopper2_liveweight` (`TimeStr`,`Value`) VALUES ('2019-06-30 12:06:49',288);
我昨天发布了一篇关于运输车类似问题的帖子,但我了解到使用临时表并不是最好的解决方案,尽管我在那里得到的答案确实给了我期望的结果

我还从收到的这些答案中学到了一些东西,并尝试了这些东西的几种变体,例如IfCASTValue为UNSIGNED!=对于我的新任务,0、值、空权重技巧和其他一些东西,我再次遇到了获得预期结果的困难

如果我将数据放入临时表中,我当然可以得到预期的结果,但它的性能不好,而且我相信这也会使过程变得过于复杂,实际上并不需要

我尝试了一些不同的变体,使用JOIN语句和UNION数据以及子查询,但在尝试获取timestr+3秒记录之间的最大权重时,出现了不足

我很想从一个有助于解决这个问题的答案中学到一些新的东西,一个灯泡在我的脑海中熄灭。因此,向前看,这是一个应用类似逻辑的问题,而不需要创建临时或永久临时表


如果需要的话,用一些JOIN语句甚至几个子查询将所有内容都保存在一个查询中,这对我很有用。我不确定使用MySQL会话变量是否有帮助,但我甚至尝试了一些方法,但都失败了

一个适合的查询是:

SELECT sm.TimeStr AS EndTime, Max(lw.Value) AS Weight
FROM (SELECT TimeStr FROM hopper2_setpoint_met WHERE Value = 1) sm
INNER JOIN hopper2_liveweight lw ON (sm.TimeStr + INTERVAL 3 SECOND) = lw.TimeStr
GROUP BY sm.TimeStr
;

让我知道我可以提供什么进一步的澄清,等等。是否不可能简化您的问题?例如,不必知道什么是传感器和hoppers@JaimeDrq是的,绝对有可能。这是一个该死的如果你做或该死的如果你不做的事情。我只是想给它添加一些上下文,但我希望通过数据、SQLFiddle、SQL、屏幕截图和其他一些文章中的噪音,人们可以从数据的技术方面看到我正在尝试做什么以及为什么。我也在粘贴中发布了SQL,并更改了表名,以发现我在粘贴过程中弄糟了一些东西,有些东西是无效的,因此从我发布此类问题的经验来看,从这个角度来看,似乎最好保持所有SQL的原样。这对我来说是可行的。我将设置触发器或计划事件,以便根据一个表中的每个记录更新运行一次,或者对于具有某种故障保护逻辑的计划事件,可能每15秒运行一次,并设置一个每小时和24小时的运行作业,以便根据此查询将记录插入到新表中。我认为这将是最好的表现,但这种逻辑给了我确切的结果,我需要。我想加入日期,然后加上+3秒,我只是因为某些原因而挣扎。我感谢你对这项任务的帮助。
SELECT sm.TimeStr AS EndTime, Max(lw.Value) AS Weight
FROM (SELECT TimeStr FROM hopper2_setpoint_met WHERE Value = 1) sm
INNER JOIN hopper2_liveweight lw ON (sm.TimeStr + INTERVAL 3 SECOND) = lw.TimeStr
GROUP BY sm.TimeStr
;