SQL SELECT greatestとleastのサンプル

SQLのSELECTのgreatestとleastのサンプルです。(Oracle)

目次

サンプル 最大値を取得する(greatest)
  最小値を取得する(least)

最大値を取得する(greatest)

greatestは、行単位で見て、指定した項目の中の最大値を返します。

以下のテーブルがあるとします。

salesテーブル
id name price1 price2 price3
1 りんご 300 350 370
2 みかん 200 180 160
3 白菜 200 400 300

SQL

上記テーブルに対してgreatestを使用します。

select ID,name,
greatest(price1,price2,price3) as price
from sales
order by id

2行目は、greatestを指定しています。指定した各項目の中の最大値を表示します。

結果

結果は、以下のとおりです。

salesテーブル
id name price
1 りんご 370
2 みかん 200
3 白菜 400

whereの条件に指定

greatestはwhereの条件に指定もできます。

select ID,name,price1,price2,price3
from sales
where greatest (price1,price2,price3) > 300
order by id

3行目のgreatestは、行単位で見てprice1,price2,price3のどれかひとつでも300を超えているものがある場合行を表示します。

結果

結果は、以下のとおりです。

salesテーブル
id name price1 price2 price3
1 りんご 300 350 370
3 白菜 200 400 300

 

最小値を取得する(least)

leastは、行単位で見て、指定した項目の中の最小値を返します。

以下のテーブルがあるとします。

salesテーブル
id name price1 price2 price3
1 りんご 300 350 370
2 みかん 200 180 160
3 白菜 200 400 300

SQL

上記テーブルに対してleastを使用します。

select ID,name,
least(price1,price2,price3) as price
from sales
order by id

2行目は、leastを指定しています。指定した各項目の中の最小値を表示します。

結果

結果は、以下のとおりです。

salesテーブル
id name price
1 りんご 300
2 みかん 160
3 白菜 200

whereの条件に指定

leastはwhereの条件に指定もできます。

select ID,name,price1,price2,price3
from sales
where least (price1,price2,price3) < 300
order by id

3行目のleastは、行単位で見てprice1,price2,price3のどれかひとつでも300より小さいものがある場合行を表示します。

結果

結果は、以下のとおりです。

salesテーブル
id name price1 price2 price3
2 みかん 200 180 160
3 白菜 200 400 300

関連の記事

SQL PARTITION BYのサンプル(単位毎に表示)

△上に戻る