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

追加のテーブルを作成せずにSQLでシーケンスのギャップを見つける

    最新のSQL を使用 、これはウィンドウ関数 を使用して簡単に実行できます。 :

    select invoice_number + 1 as gap_start, 
           next_nr - 1 as gap_end
    from (
      select invoice_number, 
             lead(invoice_number) over (order by invoice_number) as next_nr
      from invoices
    ) nr
    where invoice_number + 1 <> next_nr;
    

    SQLFiddle: http://sqlfiddle.com/#!15/1e807/1



    1. MySQLは重複レコードを削除しますが、最新の状態に保ちます

    2. MySQL Spatial Extensionsを使用して、半径と中心の座標を持つ円のジオメトリを作成するにはどうすればよいですか?

    3. Herokuは、あるアプリから別のアプリにデータベースを転送します

    4. ORを使用して複数のLEFTJOINを作成し、複合インデックスを完全に使用するにはどうすればよいですか?