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

回答編集履歴

2

回答パターンの追加。

2020/04/27 12:55

投稿

退会済みユーザー
answer CHANGED
@@ -1,3 +1,5 @@
1
+ ###### 回答パターン1
2
+
1
3
  `CASE`式を使うと実現できます。
2
4
 
3
5
  ```SQL
@@ -18,4 +20,30 @@
18
20
  2020/02/01|3000|-
19
21
  2020/01/31|2000|2000
20
22
  2020/01/30|1000|1000
21
- 2020/01/29|0|0
23
+ 2020/01/29|0|0
24
+
25
+ ---
26
+
27
+ ###### 回答パターン2
28
+
29
+ 日付で降順に並べたのちに、分析関数`LAG()`を使用して次行の値を出力しました。
30
+
31
+ ```SQL
32
+ SELECT
33
+ dt
34
+ , val
35
+ , LAG(val, -1) OVER (ORDER BY dt) AS 求めたい値
36
+ FROM
37
+ kotonedb.tbname
38
+ ORDER BY
39
+ dt DESC
40
+ ;
41
+ ```
42
+
43
+ |dt|val|求めたい値|
44
+ |:--|:--|:--|
45
+ |2020/05/05|1000|(NULL)|
46
+ |2020/04/04|2000|1000|
47
+ |2020/03/03|3000|2000|
48
+ |2020/02/02|4000|3000|
49
+ |2020/01/01|5000|4000|

1

SQL結果の追加。

2020/04/27 12:55

投稿

退会済みユーザー
answer CHANGED
@@ -11,4 +11,11 @@
11
11
  FROM
12
12
  tbname
13
13
  ;
14
- ```
14
+ ```
15
+
16
+ |date|value|求めたい値|
17
+ |:--|--:|--:|
18
+ 2020/02/01|3000|-
19
+ 2020/01/31|2000|2000
20
+ 2020/01/30|1000|1000
21
+ 2020/01/29|0|0