如何选择多个日期范围+另一个值并按每个范围分组

时间:2019-09-16 20:07:20

标签: mysql

我正在尝试建立一个查询,该查询将找到日期范围并将其与另一个值组合在一起。插入的日期时间之间可以是秒或天之间。

它将在运行版本8的MySQL服务器上的存储过程中。

我的桌子看起来像这样:

inserted            |   ref_id   |   state
2019-09-16 18:01:00 |   1        |   0
2019-09-16 18:02:00 |   1        |   0
2019-09-16 18:03:00 |   1        |   1
2019-09-16 18:04:00 |   1        |   1
2019-09-16 18:05:00 |   1        |   0
2019-09-16 18:06:00 |   1        |   0
2019-09-16 18:01:00 |   2        |   1
2019-09-16 18:02:00 |   2        |   1
2019-09-16 18:03:00 |   2        |   1

创建表格:

CREATE TABLE my_table (
  id INT NOT NULL AUTO_INCREMENT,
  inserted DATETIME NULL,
  ref_id INT NULL,
  state TINYINT NULL,
  PRIMARY KEY (id)
);

INSERT INTO my_table 
    (inserted, ref_id, state) 
VALUES 
    ("2019-09-16 18:01:00", 1, 0),
    ("2019-09-16 18:02:00", 1, 0),
    ("2019-09-16 18:03:00", 1, 1),
    ("2019-09-16 18:04:00", 1, 1),
    ("2019-09-16 18:05:00", 1, 0),
    ("2019-09-16 18:06:00", 1, 0),
    ("2019-09-16 18:01:00", 2, 1),
    ("2019-09-16 18:02:00", 2, 1),
    ("2019-09-16 18:03:00", 2, 1)

所需的输出(其中ref_id = 1):

from                |   to                    |   state
2019-09-16 18:01:00 |   2019-09-16 18:02:00   |   0
2019-09-16 18:03:00 |   2019-09-16 18:04:00   |   1
2019-09-16 18:05:00 |   2019-09-16 18:06:00   |   0

0 个答案:

没有答案