回答編集履歴

2

回答パターンの追加。

2020/04/27 12:55

投稿

退会済みユーザー
test CHANGED
@@ -1,3 +1,7 @@
1
+ ###### 回答パターン1
2
+
3
+
4
+
1
5
  `CASE`式を使うと実現できます。
2
6
 
3
7
 
@@ -39,3 +43,55 @@
39
43
  2020/01/30|1000|1000
40
44
 
41
45
  2020/01/29|0|0
46
+
47
+
48
+
49
+ ---
50
+
51
+
52
+
53
+ ###### 回答パターン2
54
+
55
+
56
+
57
+ 日付で降順に並べたのちに、分析関数`LAG()`を使用して次行の値を出力しました。
58
+
59
+
60
+
61
+ ```SQL
62
+
63
+ SELECT
64
+
65
+ dt
66
+
67
+ , val
68
+
69
+ , LAG(val, -1) OVER (ORDER BY dt) AS 求めたい値
70
+
71
+ FROM
72
+
73
+ kotonedb.tbname
74
+
75
+ ORDER BY
76
+
77
+ dt DESC
78
+
79
+ ;
80
+
81
+ ```
82
+
83
+
84
+
85
+ |dt|val|求めたい値|
86
+
87
+ |:--|:--|:--|
88
+
89
+ |2020/05/05|1000|(NULL)|
90
+
91
+ |2020/04/04|2000|1000|
92
+
93
+ |2020/03/03|3000|2000|
94
+
95
+ |2020/02/02|4000|3000|
96
+
97
+ |2020/01/01|5000|4000|

1

SQL結果の追加。

2020/04/27 12:55

投稿

退会済みユーザー
test CHANGED
@@ -25,3 +25,17 @@
25
25
  ;
26
26
 
27
27
  ```
28
+
29
+
30
+
31
+ |date|value|求めたい値|
32
+
33
+ |:--|--:|--:|
34
+
35
+ 2020/02/01|3000|-
36
+
37
+ 2020/01/31|2000|2000
38
+
39
+ 2020/01/30|1000|1000
40
+
41
+ 2020/01/29|0|0