質問するログイン新規登録

質問編集履歴

1

SQL文の修正

2022/03/31 10:18

投稿

blue0524
blue0524

スコア28

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,6 @@
1
1
  MySQLで、連続したデータを集計する方法についてです。
2
2
  以下のようなテーブルがあるとすると、
3
- |epoc_sec|area_id|
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|area_id|count|
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(epoc_sec) as sec , max(aria_id) as area ,count(*)
28
+ select p2.epoch_sec, min(p2.sensor_id) , max(p2.sensor_id) ,count(*)
29
- from (select epoc_sec,area_id,
29
+ from (select p1.epoch_sec, p1.sensor_id,
30
- Row_Number() over(order by epoc_sec)
30
+ Row_Number() over(order by p1.epoch_sec)
31
- -Row_Number() over(order by epoc_sec)
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(epoc_sec);
36
+ order by min(p2.epoch_sec);
36
37
  ```
37
- Error Code: 1248. Every derived table must have its own alias
38
+
38
- が返ります。記述がよろしくないのだと思っております。
39
39
  MySQL8.0です。
40
40
  よろしくお願いいたします。