質問編集履歴
1
SQL文の修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
MySQLで、連続したデータを集計する方法についてです。
|
2
2
|
以下のようなテーブルがあるとすると、
|
3
|
-
|epoc_sec|
|
3
|
+
|epoc_sec|sensor_id|
|
4
4
|
|-|:--:|
|
5
5
|
|1628236711|0|
|
6
6
|
|1628236712|2|
|
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
area_idの件数をまとめたいです。
|
16
16
|
理想の結果としては、
|
17
|
-
|epoc_sec|
|
17
|
+
|epoc_sec|sensor_id|count|
|
18
18
|
|-|:--:|:--:|
|
19
19
|
|1628236711|0|1|
|
20
20
|
|1628236712|2|4|
|
@@ -25,16 +25,16 @@
|
|
25
25
|
色々調べてみたところ旅人算メソッドというものがヒットしたのですが、
|
26
26
|
内容を確認してもピンと来ず、試行錯誤中です。
|
27
27
|
```SQL
|
28
|
-
select min(
|
28
|
+
select p2.epoch_sec, min(p2.sensor_id) , max(p2.sensor_id) ,count(*)
|
29
|
-
from (select
|
29
|
+
from (select p1.epoch_sec, p1.sensor_id,
|
30
|
-
Row_Number() over(order by
|
30
|
+
Row_Number() over(order by p1.epoch_sec)
|
31
|
-
-Row_Number() over(order by
|
31
|
+
-Row_Number() over(order by p1.epoch_sec)
|
32
32
|
as buff
|
33
|
-
from persons
|
33
|
+
from persons p1
|
34
|
+
) p2
|
34
35
|
group by buff
|
35
|
-
order by min(
|
36
|
+
order by min(p2.epoch_sec);
|
36
37
|
```
|
37
|
-
|
38
|
+
|
38
|
-
が返ります。記述がよろしくないのだと思っております。
|
39
39
|
MySQL8.0です。
|
40
40
|
よろしくお願いいたします。
|