PostgreSQLパズル

 サイト設立 2006年1月24日
  最終更新日 2017年8月28日


Joe Celko氏の著書[SQLパズル]の内容をふまえて構造化定理を意識しつつ、SQLパズルを解くサイトです。
PostgreSQL8.4以降が対象です。


勉強会の資料

PostgreSQL8.4新機能 window関数
PostgreSQLの再帰SQLの使用例
PostgreSQLでSQLパズルの問題を解く


CodeZineの執筆記事

PostgreSQLの再帰SQL1 (再帰SQLの構文)
PostgreSQLの分析関数の衝撃1 (モードとメジアン)
PostgreSQLの分析関数の衝撃2 (Lag関数と累計と移動累計)
PostgreSQLの分析関数の衝撃3 (数列を扱うSQLとrange指定)
PostgreSQLの分析関数の衝撃4 (集合の一致と全称肯定命題)
PostgreSQLの分析関数の衝撃5 (Row_Number関数の応用例)
PostgreSQLの分析関数の衝撃6 (window関数の応用例)
PostgreSQLの分析関数の衝撃7 (window関数の変わった使用例)
PostgreSQLの分析関数の衝撃8 (RowsとRangeの代用)


1 基礎編

1-1 キルヒホッフの実証論
1-2 ブール代数
1-3 集合理論
1-4 構造化定理
1-5 3値論理
1-6 select文の評価順序


2 基本編

2-1 主に順次機能に相当

2-1-1 連続したnullチェック


3 応用編

3-1 case式と集合関数


4 他サイト(@IT)のSQLパズル

4-1 文字の検索
4-12 階層の総積を取得
4-13 経路を取得
4-22 他テーブルの値でupdate(3テーブル版)


7 フォーラムのSQLパズル

7-30 空き番号を取得その3


9 Joe Celko氏の記事のSQLパズル

9-1 複数行を1行に変換
9-2 和集合を求めて、スカラー問い合わせ
9-3 開始日と終了日をまとめる
9-9 差集合が空集合かチェック
9-10 共通集合が空集合かチェック
9-22 存在有無のブール値で論理演算
9-28 等しい集合が存在する、集合を求める
9-42 存在有無のブール値の応用
9-56 集合が等しい組み合わせを求める
9-57 集合が等しい組み合わせを求める(複数列版)


10 OTNのSQLパズル

10-25 1行を複数行に変換


再帰with句のサンプル

01 OracleのLevel擬似列を模倣
02 Oracleのsys_connect_by_path関数を模倣
03 Oracleのorder siblings byを模倣
04 Oracleのconnect_by_IsLeafを模倣
05 Oracleのconnect by nocycleを模倣
06 ナイト巡回問題
07 最短距離問題
08 最小全域木問題
09 総積を求める
10 数独を解く


PostgreSQLメモ
PostgreSQL window関数メモ


姉妹サイト

OracleSQLパズル
MySQLパズル
DB2 SQLパズル
正規表現パズル
ブール代数パズル
Javaアルゴリズムパズル
C#のサンプル集
C++のサンプル集
SQLServerのSQLのサンプル集
JavaScriptのサンプル集
競技プログラミングのソース置場