このようなテーブルがあるとしましょう:
name | score_a | score_b
-----+---------+--------
Joe | 100 | 24
Sam | 96 | 438
Bob | 76 | 101
... | ... | ...
Score_aとscore_bの最小値を選択したいと思います。つまり、次のようなものです。
SELECT name, MIN(score_a, score_b)
FROM table
もちろん、結果は次のようになります。
name | min
-----+-----
Joe | 24
Sam | 96
Bob | 76
... | ...
しかし、Postgresでこれを試すと、「指定された名前と引数の型に一致する関数はありません。明示的な型キャストを追加する必要がある場合があります。」 MAX()およびMIN()は列ではなく行で機能するように見えます
私がしようとしていることを行うことは可能ですか?
[〜#〜] least [〜#〜] (a、b):
GREATEST
およびLEAST
関数は、任意の数の式のリストから最大値または最小値を選択します。式はすべて、結果の型となる共通のデータ型に変換可能である必要があります(詳細については、 セクション10.5 を参照してください)。リスト内のNULL値は無視されます。すべての式がNULLと評価された場合にのみ、結果はNULLになります。
GREATEST
とLEAST
はSQL標準にはありませんが、一般的な拡張子であることに注意してください。一部のデータベースでは、すべての引数がNULLの場合だけでなく、引数がNULLの場合にNULLを返します。
PostgreSQLのLEAST()
関数のドキュメントへのリンクは次のとおりです。
http://www.postgresql.org/docs/current/static/functions-conditional.html#AEN15582