sql >> データベース >  >> RDS >> Mysql

MySQL-同じテーブルの行間の違いを見つける

    これが変数のない解決策です。 thetableというテーブルに初期データがあると仮定します 。

    SELECT date, time, ip,
        result - IFNULL( (
            SELECT MAX( result ) 
            FROM thetable
            WHERE ip = t1.ip
            AND ( date < t1.date
                OR date = t1.date AND time < t1.time )
        ) , 0) AS diff
    FROM thetable AS t1
    ORDER BY ip, date, time
    

    ここでは、副選択(最大のresult)で前の値を取得します 同じipからの先行するタイムスタンプの )。 IFNULL これが最初の値の場合は0になるため、初期結果が正しく表示されます。

    また、次のインデックスをthetableに追加することをお勧めします :

    CREATE INDEX sort1 ON thetable (ip, date, time);
    


    1. MySQLでJSONを解析する

    2. Excelファイルをmysqlデータベースに変換する方法は?

    3. MySQLでrootユーザーのパスワードを変更するにはどうすればよいですか?

    4. SQLServer2017にデータを挿入する