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

前のレコードの値が小さい場合は、レコードを選択します

    SELECT  a.ID, a.SerialNumber, 
            b.Remain_Toner_Black BeforeCount,
            a.Remain_Toner_Black AfterCount
    FROM    
            (
                SELECT  A.ID, 
                        A.SerialNumber, 
                        A.Remain_Toner_Black,
                        (
                            SELECT  COUNT(*)
                            FROM    tableName c
                            WHERE   c.SerialNumber = a.SerialNumber AND
                                    c.ID <= a.ID) AS RowNumber
                FROM    TableName a
            ) a
            INNER JOIN
            (
                SELECT  A.ID, 
                        A.SerialNumber, 
                        A.Remain_Toner_Black,
                        (
                            SELECT  COUNT(*)
                            FROM    tableName c
                            WHERE   c.SerialNumber = a.SerialNumber AND
                                    c.ID <= a.ID) AS RowNumber
                FROM    TableName a
            ) b ON a.SerialNumber = b.SerialNumber AND
                    a.RowNumber = b.RowNumber + 1
    WHERE   b.Remain_Toner_Black < a.Remain_Toner_Black
    

    出力

    ╔══════╦═════════════════╦═════════════╦════════════╗
    ║  ID  ║  SERIALNUMBER   ║ BEFORECOUNT ║ AFTERCOUNT ║
    ╠══════╬═════════════════╬═════════════╬════════════╣
    ║ 7331 ║ Z5UEBJAC900002Y ║          36 ║        100 ║
    ║ 7088 ║ 3960125290      ║           0 ║         93 ║
    ║ 7100 ║ 3960125290      ║          93 ║        100 ║
    ╚══════╩═════════════════╩═════════════╩════════════╝
    

    簡単な説明

    上記のクエリは、ROW_NUMBER()を模倣した連番を生成します。 SerialNumberごとに他のRDBSで IDで並べ替え 昇順。

    次に、2つのサブクエリがSerialNumberを介して結合されます。 生成された連番。生成された数値で、次のレコードのトナーの数を取得するには、最初のサブクエリの値に2番目のサブクエリの値の1を加えた値に等しくする必要があります。



    1. Python From Scratch:動的なWebサイトを作成する

    2. MySQL ONDUPLICATEKEYを監査またはログテーブルに挿入します

    3. GoからMySQLに接続するための推奨される方法は何ですか?

    4. VBAを使用して、WindowsにインストールされているMySQLODBCドライバーのバージョンを見つけます