1

私が持っているとします:

A       B  
andy    10
andy    20
andy    30
andy    40
paul    10
paul    50
ryan    3

...そして、結果を次のようにしたい:

A       B       C
andy    10      10
andy    20      30
andy    30      60
andy    40      100
paul    10      10
paul    50      60
ryan    3       3

どのクエリでこれを達成できますか? C は累積度数と考えてください。

4

1 に答える 1

1

それを行う1つの方法..テストされていない提案...サブ選択は、それらが一致し、現在の行の前にある関連する値を合計します...

SELECT
  name as A, 
  value as B,
  ( SELECT sum(value) FROM the_table t2 WHERE t2.name=t1.name 
    AND t2.second_order_field<=t1.second_order_field ) as C
FROM the_table t1
ORDER BY t1.name,t1.second_order_field
于 2013-02-20T10:02:15.227 に答える