複数の式のリストから最大値または最小値を返す

PostgreSQL

このカテゴリーでは競馬予想プログラミング以外でも役に立つ、PostgreSQLの汎用的な技術について解説します。

構文

式のリストにおいて最大値が欲しいなら greatest

greatest(列名1 [, 列名2] [, 列名3])

式のリストにおいて最小値が欲しいなら least

least(列名1 [, 列名2] [, 列名3])

具体的な使い方

この関数は基本的にSELECT句で使います。この関数の引数は「可変長引数」といって固定の個数ではなく、任意の個数の引数を指定できます。例えば、次のようなSQLを書きます。

SELECT
  greatest(3, 1, 5) AS greatest_number
, least(3, 1, 5) AS least_number
, greatest('B', 'A', 'C', 'E', 'D') AS greatest_text
, least('B', 'A', 'C', 'E', 'D') AS least_text

このSQLはテーブルを見てないのでFROM句は不要です。

実行結果は、こんな感じになります。

ここでは分かりやすい例として数値と文字の直接表現にしましたが、「PC-KEIBA Database」のテーブルの項目で使うなら馬毎レース情報の「コーナーでの順位」の最小値や、払戻の「不成立フラグ」の最大値が取得できたりするわけです。