PostgreSQL

PostgreSQL generate_series() シーケンスと行データを生成

generate_series()

指定された範囲で整数のシーケンスを生成し結果セットとして返却します。地味だけで便利な関数です。OracleやMySQLにはこれに相当する関数は無いとおもいます。ちょっとしたテストデータとして副問い合わせで利用すると便利です。

5件の乱数を出力する

generate_series(1,5)で1~5までのシーケンスを作成し、1000~9999内で乱数を出力する。

select generate_series(1,5) as id,floor(random() * (9999 - 1000 + 1) + 1000) as random;
myposdb=# select generate_series(1,5) as id,floor(random() * (9999 - 1000 + 1) + 1000) as random;
 id | random
----+--------
  1 |   6628
  2 |   7469
  3 |   6156
  4 |   5879
  5 |   8039
(5 行)

myposdb=# 
今日から3日前までの日付を一覧する
select current_date - generate_series(0, 3) as date_range;
myposdb=# select current_date - generate_series(0, 3) as date_range;
 date_range
------------
 2024-02-23
 2024-02-22
 2024-02-21
 2024-02-20
(4 行)


myposdb=#
スポンサーリンク