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

回答編集履歴

5

訂正

2020/09/01 12:31

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -12,7 +12,7 @@
12
12
  select b3.column1, coalesce(b4.column2, b5.column2) column2
13
13
  from (
14
14
  select b1.column1, max(b2.column1) as b2_column1
15
- from before b1 left join befor b2
15
+ from before b1 left join before b2
16
16
  on b1.column1 > b2.column
17
17
  and b2.column2 is not null
18
18
  group by b1.column1

4

訂正

2020/09/01 12:31

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -19,6 +19,6 @@
19
19
  ) b3
20
20
  inner join before b4
21
21
  on b3.column1 = b4.column1
22
- left join befor b5
22
+ left join before b5
23
23
  on b3.b2_column1 = b5.column1
24
24
  ```

3

訂正

2020/09/01 12:30

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -20,5 +20,5 @@
20
20
  inner join before b4
21
21
  on b3.column1 = b4.column1
22
22
  left join befor b5
23
- on b4.b2_column1 = b5.column1
23
+ on b3.b2_column1 = b5.column1
24
24
  ```

2

訂正

2020/09/01 12:29

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -9,14 +9,16 @@
9
9
  column1はユニークであることが前提です。
10
10
  低速な場合はせめてcolumn1のインデックスを作成して下さい。
11
11
  ```SQL
12
- select b3.column1, coalesce(b3.column2, b4.column2) column2
12
+ select b3.column1, coalesce(b4.column2, b5.column2) column2
13
- from befor b3
13
+ from (
14
- left join (
15
14
  select b1.column1, max(b2.column1) as b2_column1
16
15
  from before b1 left join befor b2
17
16
  on b1.column1 > b2.column
18
17
  and b2.column2 is not null
19
18
  group by b1.column1
20
- ) b4
19
+ ) b3
20
+ inner join before b4
21
21
  on b3.column1 = b4.column1
22
+ left join befor b5
23
+ on b4.b2_column1 = b5.column1
22
24
  ```

1

追記

2020/09/01 12:29

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -1,4 +1,22 @@
1
1
  並びを特定するものが無ければ無理です。
2
2
  単に情報不足なら質問に追記して下さい。
3
3
 
4
- 並びを特定する項目が無いなら、そのテーブルにオートナンバーを付加したテーブルを準備して追加すると、上手く行けば見た目上の並びでオートナンバーが振られるかもしれません。
4
+ 並びを特定する項目が無いなら、そのテーブルにオートナンバーを付加したテーブルを準備して追加すると、上手く行けば見た目上の並びでオートナンバーが振られるかもしれません。
5
+
6
+ 追記
7
+ --
8
+ 未検証です。
9
+ column1はユニークであることが前提です。
10
+ 低速な場合はせめてcolumn1のインデックスを作成して下さい。
11
+ ```SQL
12
+ select b3.column1, coalesce(b3.column2, b4.column2) column2
13
+ from befor b3
14
+ left join (
15
+ select b1.column1, max(b2.column1) as b2_column1
16
+ from before b1 left join befor b2
17
+ on b1.column1 > b2.column
18
+ and b2.column2 is not null
19
+ group by b1.column1
20
+ ) b4
21
+ on b3.column1 = b4.column1
22
+ ```