【发布时间】:2015-09-15 11:46:36
【问题描述】:
我有一个历史记录,我想总结一些条目。间隔应为 5 秒
例如: 我有一个清单
date_start | date_end | count | somestring
2015-09-15 12:04:09 | 2015-09-15 12:04:09| 1 | xyz
2015-09-15 12:05:09 | 2015-09-15 12:05:09| 1 | xyz
2015-09-15 12:05:10 | 2015-09-15 12:05:10| 1 | xyz
2015-09-15 12:05:11 | 2015-09-15 12:05:11| 1 | xyz
2015-09-15 12:06:09 | 2015-09-15 12:06:09| 1 | xyz
我现在想要一个类似的输出
date_start | date_end | count | somestring
2015-09-15 12:04:09 | 2015-09-15 12:04:09| 1 | xyz
2015-09-15 12:05:09 | 2015-09-15 12:05:11| 3 | xyz <--
2015-09-15 12:06:09 | 2015-09-15 12:06:09| 1 | xyz
因此,如果在 5 秒间隔内有重复项,我想将其分组到一个条目中。但是如果每个最大值在 1 小时内有多个条目。相隔 5 秒,我也想计算所有这些条目。
有人知道方法吗?我已经在这工作了好几个星期了:(
编辑: Bernd的回答和评论: 非常感谢,您的查询的输出是: 谢谢@Bernd。问题是,您的查询的输出是:
+---------+---------------------+--------------+---------------------+----+---------------------+---------------------+-----------+------+
| mycount | st | group_number | tmp_interv | id | start_date | end_date | some_text | cnt |
+---------+---------------------+--------------+---------------------+----+---------------------+---------------------+-----------+------+
| 2 | 2015-09-14 12:00:05 | 0 | 2015-09-14 12:00:05 | 1 | 2015-09-14 12:00:00 | 2015-09-14 12:00:00 | some | 1 |
| 4 | 2015-09-14 12:00:05 | 1 | 2015-09-14 12:01:08 | 3 | 2015-09-14 12:01:03 | 2015-09-14 12:01:03 | some | 1 |
| 1 | 2015-09-14 12:01:08 | 2 | 2015-09-14 12:01:14 | 7 | 2015-09-14 12:01:09 | 2015-09-14 12:01:09 | some | 1 |
+---------+---------------------+--------------+---------------------+----+---------------------+---------------------+-----------+------+
但它应该是这样的:
+---------+---------------------+--------------+---------------------+----+---------------------+---------------------+-----------+------+
| mycount | st | group_number | tmp_interv | id | start_date | end_date | some_text | cnt |
+---------+---------------------+--------------+---------------------+----+---------------------+---------------------+-----------+------+
| 2 | 2015-09-14 12:00:05 | 0 | 2015-09-14 12:00:05 | 1 | 2015-09-14 12:00:00 | 2015-09-14 12:00:03 | some | 1 |
| 5 | 2015-09-14 12:00:05 | 1 | 2015-09-14 12:01:08 | 3 | 2015-09-14 12:01:03 | 2015-09-14 12:01:09 | some | 1 |
+---------+---------------------+--------------+---------------------+----+--------------------+----------------------+-----------+------+
注意 count 和 date_end :)
【问题讨论】:
-
是第一次的时间间隔,即 2015-09-15 12:05:09 或总是从最后一个 gouped 条目开始。所以如果你每秒有一行,它是分组一行还是多行
-
@BerndBuffen 如果条目在 5 秒的间隔内,则应将它们分组,因此结束时间可能比开始时间晚一个小时,如果它们之间最多有 5 秒的条目
标签: mysql group-by mariadb intervals