使用一个表中的时间戳作为在另一个表中进行选择的间隔

always_confused

我正在使用MySQL具有2个表的数据库。我的目标是使用一个表给出的间隔从另一个表中选择值。在我的示例中,我想select ErrorCode WHERE ErrorsTime_Stamp is between Batch. Time_Stamp for each BatchNum

CREATE TABLE Batch (BatchNum INT, Time_Stamp DATETIME);
INSERT INTO Batch VALUES (1,'2020-12-17 07:29:36'), (1, '2020-12-17 08:31:56'), (1, '2020-12-17 08:41:56'), (2, '2020-12-17 09:31:13'), (2, '2020-12-17 10:00:00'), (2, '2020-12-17 10:00:57'), (2, '2020-12-17 10:01:57'), (3, '2020-12-17 10:47:59'), (3, '2020-12-17 10:48:59'), (3, '2020-12-17 10:50:59');

CREATE TABLE Errors (ErrorCode INT, Time_Stamp DATETIME);
INSERT INTO Errors VALUES (10, '2020-12-17 07:29:35'), (11, '2020-12-17 07:30:00'), (12, '2020-12-17 07:30:35'), (10, '2020-12-17 07:30:40'), (22, '2020-12-17 10:01:45'), (23, '2020-12-17 10:48:00');

我想从中选择2个:

  1. 诸如SELECT BatchNum,ErrorCode,Errors.Time_Stamp之类的内容,在Erorrs.Time_Stamp之间,批处理开始与批处理结束之间

    | BatchNum | ErrorCode |  Errors.Time_Stamp   |
    +----------+-----------+---------------------+
    |        1 |        11 | 2020-12-17 07:30:00 |
    |        1 |        12 | 2020-12-17 07:30:35 |
    |        1 |        10 | 2020-12-17 07:30:40 |
    |        2 |        22 | 2020-12-17 10:01:45 |
    |        3 |        23 | 2020-12-17 10:48:00 |
    +----------+-----------+---------------------+
    
  2. 和类似SELECT BatchNum,ErrorCode,Errors.Time_Stamp WHERE Erorrs.Time_Stamp BETWEEN特定批次开始(此处为批次1)

    | ErrorCode |  Errors.Time_Stamp  |
    +----------+-----------+----------+
    |        11 | 2020-12-17 07:30:00 |
    |        12 | 2020-12-17 07:30:35 |
    |        10 | 2020-12-17 07:30:40 |
    +----------+-----------+----------+
    

我在用 :

select *
from (
    select e.*,
        lag(BatchNum) over(order by time) lag_BatchNum
    from Batch e
) e
where not lag_BatchNum <=> BatchNum

查找BatchNum更改,但我不知道如何将此包含在另一个选择中以使ErrorCodes不同的之间发生BatchNum

JOIN我可能可以做一些事情,但是我的主要问题是如何获取时间间隔以获取错误。

谢谢你的帮助

专线小巴

我想你要:

select b.*, e.error_code, e.time_stamp as error_timestamp
from (
    select b.*,
        lead(time_stamp) over(order by time_stamp) lead_time_stamp
    from batch b
) b
inner join errors e 
    on  e.time_stamp >= b.time_stamp
    and (e.time_stamp < b.lead_time_stamp or b.lead_time_stamp is null)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL-根据另一个表中给出的匹配值在一个表中进行选择

来自分类Dev

用另一个表中的值在一个表中进行计算

来自分类Dev

使用另一个表中的条件从表中进行SQL查询

来自分类Dev

以时间间隔对年龄进行分组以使用 r 中的另一个变量创建列联表

来自分类Dev

如果另一个表中没有数据,如何从表中进行选择

来自分类Dev

MySQL从另一个表中进行选择时以自动增量的方式插入表中

来自分类Dev

使用 Oracle SQL 从基于从另一个表拆分的正则表达式的表中进行选择

来自分类Dev

在另一个表上具有多个匹配项的select中进行选择

来自分类Dev

从一个表中进行MySQL SELECT,在另一个表中进行INSERT-性能

来自分类Dev

从SQL Server链接表中插入到另一个Access.accdb中进行选择

来自分类Dev

我从另一个表的时间戳中获取最新行的SQL查询

来自分类Dev

Sql从表中选择但使用另一个表值作为where子句

来自分类Dev

如何使用一个表中的数据作为参考以使用 Firebase 获取另一个表中的另一个数据?

来自分类Dev

使用一个表的PK作为另一个表的PK

来自分类Dev

从具有条件的表中选择 DISTINCT 并从另一个表中进行排序

来自分类Dev

从一个表中进行mySQL SELECT,从另一个表中进行JOIN,然后从新表中进行SELECT

来自分类Dev

MySQL:如何从一个表中选择从另一个表获取的每个间隔之间的行

来自分类Dev

选择不在另一个表中的行

来自分类Dev

MySQL 3 表连接,一个表中的计数和另一个表中的最大时间戳

来自分类Dev

使用一个表中的逗号分隔列表作为子句查询另一个表

来自分类Dev

使用另一个表作为输入丢弃表中的数据块

来自分类Dev

两个表中的Postgres类似选择查询在一个表中花费的时间比在另一个表中要长得多

来自分类Dev

MySQL对两个表进行联合,其中一个带有时间戳,另一个带有日期

来自分类Dev

MySQL对两个表进行联合,其中一个带有时间戳,另一个带有日期

来自分类Dev

对嵌套在另一个表中的表进行排序(使用Tablesorter)

来自分类Dev

使用另一个表中的值对SQL表进行排序

来自分类Dev

MySQL:使用表中的值对另一个表进行数学运算

来自分类Dev

对嵌套在另一个表中的表进行排序(使用Tablesorter)

来自分类Dev

选择表中ID等于另一个表中另一个ID的行

Related 相关文章

  1. 1

    SQL-根据另一个表中给出的匹配值在一个表中进行选择

  2. 2

    用另一个表中的值在一个表中进行计算

  3. 3

    使用另一个表中的条件从表中进行SQL查询

  4. 4

    以时间间隔对年龄进行分组以使用 r 中的另一个变量创建列联表

  5. 5

    如果另一个表中没有数据,如何从表中进行选择

  6. 6

    MySQL从另一个表中进行选择时以自动增量的方式插入表中

  7. 7

    使用 Oracle SQL 从基于从另一个表拆分的正则表达式的表中进行选择

  8. 8

    在另一个表上具有多个匹配项的select中进行选择

  9. 9

    从一个表中进行MySQL SELECT,在另一个表中进行INSERT-性能

  10. 10

    从SQL Server链接表中插入到另一个Access.accdb中进行选择

  11. 11

    我从另一个表的时间戳中获取最新行的SQL查询

  12. 12

    Sql从表中选择但使用另一个表值作为where子句

  13. 13

    如何使用一个表中的数据作为参考以使用 Firebase 获取另一个表中的另一个数据?

  14. 14

    使用一个表的PK作为另一个表的PK

  15. 15

    从具有条件的表中选择 DISTINCT 并从另一个表中进行排序

  16. 16

    从一个表中进行mySQL SELECT,从另一个表中进行JOIN,然后从新表中进行SELECT

  17. 17

    MySQL:如何从一个表中选择从另一个表获取的每个间隔之间的行

  18. 18

    选择不在另一个表中的行

  19. 19

    MySQL 3 表连接,一个表中的计数和另一个表中的最大时间戳

  20. 20

    使用一个表中的逗号分隔列表作为子句查询另一个表

  21. 21

    使用另一个表作为输入丢弃表中的数据块

  22. 22

    两个表中的Postgres类似选择查询在一个表中花费的时间比在另一个表中要长得多

  23. 23

    MySQL对两个表进行联合,其中一个带有时间戳,另一个带有日期

  24. 24

    MySQL对两个表进行联合,其中一个带有时间戳,另一个带有日期

  25. 25

    对嵌套在另一个表中的表进行排序(使用Tablesorter)

  26. 26

    使用另一个表中的值对SQL表进行排序

  27. 27

    MySQL:使用表中的值对另一个表进行数学运算

  28. 28

    对嵌套在另一个表中的表进行排序(使用Tablesorter)

  29. 29

    选择表中ID等于另一个表中另一个ID的行

热门标签

归档