SQLのSELECTのgreatestとleastのサンプルです。(Oracle)
目次
サンプル | 最大値を取得する(greatest) |
最小値を取得する(least) |
最大値を取得する(greatest)
greatestは、行単位で見て、指定した項目の中の最大値を返します。
以下のテーブルがあるとします。
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を指定しています。指定した各項目の中の最大値を表示します。
結果
結果は、以下のとおりです。
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を超えているものがある場合行を表示します。
結果
結果は、以下のとおりです。
id | name | price1 | price2 | price3 |
---|---|---|---|---|
1 | りんご | 300 | 350 | 370 |
3 | 白菜 | 200 | 400 | 300 |
最小値を取得する(least)
leastは、行単位で見て、指定した項目の中の最小値を返します。
以下のテーブルがあるとします。
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を指定しています。指定した各項目の中の最小値を表示します。
結果
結果は、以下のとおりです。
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より小さいものがある場合行を表示します。
結果
結果は、以下のとおりです。
id | name | price1 | price2 | price3 |
---|---|---|---|---|
2 | みかん | 200 | 180 | 160 |
3 | 白菜 | 200 | 400 | 300 |
関連の記事