Postgresの2つのフィールドのMIN()を取得するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/318988

  •  11-07-2019
  •  | 
  •  

質問

次のようなテーブルがあるとします:

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()は、列ではなくで機能するようです。

しようとしていることを実行できますか?

役に立ちましたか?

解決

最低(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

次のような列にデータを入力すると、答えを得ることができます。

SELECT name, MIN(score_a, score_b) as minimum_score
FROM table

ここでは、 score_a score_b の間に最小値を入れ、その値を minimum_score という名前の列に格納して印刷します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top