#navi(../)
* PostgreSQLで連番(データ)を作成する・generate_series [#a03041cf]
集合を返す関数 generate_series の使用例を以下に記します。~
使用例は、連番や日付の連続データになります。~
本資料は、以下URLを参考及び引用等してます。
-PostgreSQL 9.2.0文書 9.24. 集合を返す関数~
http://www.postgresql.jp/document/9.2/html/functions-srf.html

#contents
#htmlinsertpcsp(db-top.html,db-sp.html)

* 関連資料 [#ld05bd00]
-[[PostgreSQLでSELECTの出力に連番を付ける方法>PostgreSQL/SELECTの出力に連番を付ける方法]]
-[[MySQLでSELECTの出力に連番を付ける方法>MySQL/SELECTの出力に連番を付ける方法]]

* generate_series による数値の連番出力 [#d227413a]
generate_series()に開始値と終了値を指定すると以下のように動作します。
-構文
 generate_series(開始値, 終了値)
-実行例
 db1=# select generate_series(1,10);
  generate_series
 -----------------
                1
                2
                3
                4
                5
                6
                7
                8
                9
               10
 (10 行)

ステップ(インターバル)を指定することもできます。
-構文
 generate_series(開始値, 終了値, ステップ値)
-実行結果
 db1=# select generate_series(1,10,2);
  generate_series
 -----------------
                1
                3
                5
                7
                9
 (5 行)
以下のように値を減らす連続データも可能です。
-実行例
 db1=# select generate_series(100,1,-20);
  generate_series
 -----------------
              100
               80
               60
               40
               20
 (5 行)

* 日付の連続データを生成する [#of647bc5]
以下のように日時のデータの連続データを生成することも可能です。
 db1=# select * from generate_series(current_date,current_date + interval '30 days', '7 days');
    generate_series
 ---------------------
  2012-10-16 00:00:00
  2012-10-23 00:00:00
  2012-10-30 00:00:00
  2012-11-06 00:00:00
  2012-11-13 00:00:00
 (5 行)

詳細な使い方はPostgreSQLのページで確認してみてください。

-PostgreSQL 9.2.0文書 9.24. 集合を返す関数~
http://www.postgresql.jp/document/9.2/html/functions-srf.html

#htmlinsertpcsp(db-btm.html,db-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS