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

mysqlでギャップのないシリアル番号を見つける方法は?

    もっと遊びました:-

    SELECT MIN(aFirstSerial), MAX(aLastSerial)
    FROM
    (
        SELECT @FirstSerial:=IF(productSerialnumber = @LastSerial + 1, IF(@FirstSerial = 0, productSerialnumber, @FirstSerial), productSerialnumber) AS aFirstSerial, 
            @RangeNum:=IF(productSerialnumber = @LastSerial + 1, @RangeNum, @RangeNum + 1) AS aRangeNum, 
            @LastSerial := productSerialnumber AS aLastSerial
        FROM
        (
            SELECT productSerialnumber
            FROM Product
            ORDER BY productSerialnumber
        ) Sub1
        CROSS JOIN (SELECT @PrevSerial:=0, @RangeNum:=0, @FirstSerial:=0, @LastSerial:=0) Sub2
    ) Sub3
    GROUP BY aRangeNum
    

    ここでのSQLフィドル:-

    http://sqlfiddle.com/#!2/5cbc2/12



    1. Azure仮想マシンのAMDEPYCプロセッサ

    2. 集計関数はORDERBY句で何ができますか?

    3. 2つのクエリを組み合わせて、MySQLの重複をチェックしますか?

    4. postgresqlエラーPANIC:有効なチェックポイントレコードを見つけることができませんでした