1

私は以下のようなテーブルを持っています

Value          Count
value1         55
value2         60
value3         65
value4         20
value5         25
value6         45
value7          5
value8         25

連続する 2 つのカウントの差を取り、それらを合計するクエリが必要です。1 つの条件は、次の値が前の値より小さい場合、差の代わりに次の値が考慮されることです。作業は以下の通り

Value          Count       Diff         Explanation
value1         55                       No diff as there is no previous value
value2         60            5          (60-55)
value3         75           15          (75-60) 
value4         20           20          (20 as 20 < 75)
value5         25            5          (25-20)
value6         45           20          (45-25)
value7          5            5          (5 as 5 < 45)
value8         25           20          (25-5)

クエリは、すべての違いの合計を提供する必要があります。5+15+20+5+20+5+20 = 90

あなたが私のために作成しようとしている素晴らしいクエリを前もってありがとう:-)

4

2 に答える 2

0

coalesceこの問題を解決するために使用できます

select a.Value,a.count
coalesce(a.count- 
    (select b.countfrom table_name b where b.count= a.count+ 1), a.count) as diff
from table_name  a

しかし、これで問題の半分は解決します。2番目の質問の答えがわかりません

ここを参照

于 2013-04-19T08:13:35.770 に答える