2016-04-24 9 views
0
col1 | col2 | col3 | col4 | 
------------------------------------ 
    a | 1 | 1 | 2 | 
    b | 2 | 2 | 6 | 
    a | 3 | 3 | 12 | 

にMySQLからの+ COL2 = COL4 col3という+の前のレコードを前のレコードを取得するには、その一生懸命私のためにどのように私はMySQLを使用して問題を解決することはできません</p> <p>COL4

だから、誰も私を助けることができますか?

+0

を追加します。データを順番に生成する場合は、クエリを実行して計算するのではなく、 'col5'をあらかじめ計算しておくほうがよいでしょう。 – Chris

+1

これは、テーブル構造と行の関係に依存します。前と次はソート順に依存します。 – jeroen

答えて

3

あなたは+ COL2 = COL4 col3という+の前のレコードCOL4計算するための変数を使用することができます。あなたがより良いと、ソート順を定義したい、これを拡張する

select col1, col2, col3, 
     @prev := [email protected] as col4 
from t, 
     (select @prev := 0) init 

SQL Fiddle

注意を上記のクエリは、エンジンが使用する(または使用しない)インデックスに応じて、期待どおりの別の順序に従う可能性があります。 COL2は、ソート順を定義する場合

したがって、たとえば、私たちはあなたのアプリケーションが最良の答えを与えるために使用されているかについてより多くの情報が必要だと思うORDER BY col2

+0

MySqlでしか動作しません。 ;-) – trincot

+0

そうです。私はMySQLを使用しています。これは、ちょっとした会計のためには完璧です。あなたは、累積モデルを参照してください? :D私は私がこのようにできることを知らなかった。これは最高です。 –

+0

これは最初の行で失敗しませんか? –

関連する問題

 関連する問題