このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/db/1299305530/804
#  以下のようなテーブルTABがあります。 
#   
#  A B C 
#  1  40 35 
#  2  80 50 
#  3  10  5 
#  4  20 15 
#  5  70 60 
#   
#  列Aで昇順にソートして一番小さい値を持つ行を基準に、 
#  以下の計算式で列Dを求めたいです。 
#   
#  D(n+1)= C(n)× D(n)÷ B(n+1) 
#  nは列Aの順位で求めたい結果は、 
#   
#  A B C   D 
#  1  40 35  1 
#  2  80 50  0.4375 
#  3  10  5  2.1875 
#  4  20 15  0.546875 
#  5  70 60  0.1171875 
#   
#  みたいな感じになります。 
#   
#  これってSQLで可能でしょうか? 
#  DBMSはOracle11gR2です。 
#   
# 
# 

'列Aで昇順にソートして一番小さい値を持つ行を基準に、以下の計算式で列Dを求めたいです。 D(n+1)= C(n)× D(n)÷ B(n+1)'(L) :-
        findsetof([_A,_B,_C],'TAB'(_A,_B,_C),LL),
        LL = [[_A,_B,_C]|R],
        '以下の計算式で列Dを求める。 D(n+1)= C(n)× D(n)÷ B(n+1)'(R,[_A,_B,_C,1],L).

'以下の計算式で列Dを求める。 D(n+1)= C(n)× D(n)÷ B(n+1)'(R,L,L).
'以下の計算式で列Dを求める。 D(n+1)= C(n)× D(n)÷ B(n+1)'([[_A_1,_B_1,_C_1]|R],[_A,_B,_C,_D],L) :-
        _D_1 is _C * _D / _B_1,
        '以下の計算式で列Dを求める。 D(n+1)= C(n)× D(n)÷ B(n+1)'(R,[_A_1,_B_1,_C_1,_D_1],L).