めも

技術メモとその他

PostgreSQL

【postgres】group by 〜 first row 集計して最初の行をとる

select * from detail; product_id | item | value ------------+------+-------------- 000001 | 01 | 1111-1111-11 000001 | 02 | 100000 000001 | 03 | 100000 000001 | 04 | in 000001 | 05 | 100000 000002 | 01 | 2222-1111-11 000002 | 02 | 100000 0…

【postgres】pgadmin archives(x86)

window用pgAdminダウンロードサイトが見当たらなかった際のメモ pgadmin-archive.postgresql.org

【Postgresql】 テーブル全体を固定長データとして出力するサンプル

サンプルテーブルの構造は以下の通り select * from nyukintable; id | siten | kokyakuid | nyukin | torihikibi ----+-------+-----------+--------+------------ 1 | 東京 | 001 | 77500 | 2007-01-01 2 | 大阪 | 002 | 56200 | 2007-01-02 3 | 福岡 | 00…

【Postgresql】 重複排除と先頭取得の併用(distinct on & lead)

サンプルテーブルの構造です ch_dateはレート(rate)の変更を行った日付ですが、 レートの適用期間を算出したい(yyyy-mm-dd〜yyyy-mm-dd 0.001%) a=# select * from rate_history order by ch_date; ch_date | rate ---------------------+----------- 2021-0…

【Postgresql】集計して、CSV形式にする方法

select * from nyukintable; id | siten | kokyakuid | nyukin | torihikibi ----+-------+-----------+--------+------------ 1 | 東京 | 001 | 77500 | 2007-01-01 2 | 大阪 | 002 | 56200 | 2007-01-02 3 | 福岡 | 003 | 17900 | 2007-01-03 4 | 東京 | 0…

【Postgresql】総合計を計算する

テーブルの構造とデータの状態です select * from bs_summary ; agg_code | debit | credit ----------+---------+-------- 1002 | 1000000 | 1001 | 1000000 | 2001 | | 800000 2002 | | 800000 (4 rows) 各列の合計を最後に出力する select coalesce(agg_c…

【Postgresql】 generate_seriesを使ったシーケンス(日付)

select * from GENERATE_SERIES('2020-03-12'::timestamp, '2030-03-12'::timestamp, '6 month'::INTERVAL); generate_series --------------------- 2020-03-12 00:00:00 2020-09-12 00:00:00 2021-03-12 00:00:00 2021-09-12 00:00:00 2022-03-12 00:00:00…

【Postgresql】件数を元に連番を生成する generate_series

luna=# select * from sample; stake_no | cnt ----------+----- 0001 | 1 0002 | 3 (2 rows) luna=# select * from sample,generate_series(1, 99) as id where sample.cnt >= id; stake_no | cnt | id ----------+-----+---- 0001 | 1 | 1 0002 | 3 | 1 00…