このエントリーをはてなブックマークに追加


PostgreSQLでSELECTの出力に連番を付ける方法

SELECTした結果に対して先頭などに連番を付けたい場合は、以下のようにSQLを発行することにより実現できます。

関連資料

SELECTの結果に連番を付ける

以下にPostgreSQLでSELECT結果に連番をつける方法を記します。
尚、Window関数を使用するのでバージョン8.4以上のバージョンで以下の例が実行可能です。

  1. テスト用のテーブルを作成
    db1=# create table t1 (a int, b int, c int);
    CREATE TABLE
     
  2. 3行データをインサート
    db1=# insert into t1 values(1,10,100),(2,20,200),(3,30,300);
    INSERT 0 3
     
  3. 以下のSQLを実行しSELECT結果に連番を付与しています
    db1=# select row_number() over(), * from t1;
     row_number | a | b  |  c  
    ------------+---+----+-----
              1 | 1 | 10 | 100
              2 | 2 | 20 | 200
              3 | 3 | 30 | 300
    (3 行)
     
  4. 以下のSQLでrow_numberを別名noにしています
    db1=# select row_number() over() as no, * from t1;
     no | a | b  |  c  
    ----+---+----+-----
      1 | 1 | 10 | 100
      2 | 2 | 20 | 200
      3 | 3 | 30 | 300
    (3 行)

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:08:00