![]() |
1
0
主要问题是如何匹配表A和表B的行。
参见示例
实际更新
|
![]() |
2
0
这需要一个
|
![]() |
3
0
您可以使用以下逻辑使用MERGE: 您必须确定表_b中的一行在表_a中一定有匹配行的时间间隔,例如,在您的示例中,1分钟似乎足够了,但由您来检查数据,然后您可以使用一个查询作为MERGE的来源,在该查询中添加一列,计算表_b.date_x和表_a.date之间差值的绝对值之间的增量排名。限制JOINed的数据量将是DATE/TIMESTAMP列性能+索引的关键之一。 由于我没有时间用MariaDB语法来做这件事,这里有一个ORACLE中的解决方案:
为了适应其他SQL方言,你必须检查如何处理DATE或TIMESTAMP算法来计算DATE和DATE_x列之间的差异,以及如何生成JOIN条件中使用的±1分钟间隔(或你最终决定使用的任何时间间隔…),剩下的就是相当标准的SQL。 您还可以处理“不匹配时”的情况,并决定插入新行。 |
|
Johnny T · 基于当前值的SQL合并表[重复] 6 月前 |
![]() |
John D · 需要为NULL或NOT NULL的WHERE子句 7 月前 |
![]() |
ojek · 如何对SQL结果进行分组和编号? 7 月前 |
![]() |
senek · 如何在PL/SQL中将选择结果(列)放入数组中 7 月前 |
![]() |
Sax · 规范化Google表格(第一步) 7 月前 |
![]() |
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 7 月前 |
![]() |
Andrus · 如何在sql中查找第二个匹配项 7 月前 |