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=#