SQL MIN

概要: このチュートリアルは、実践的な例を通してSQL MIN関数の習得を支援します。チュートリアル終了後、値の集合の中で最小値を見つけるためにMIN関数を効果的に適用する方法を理解します。

SQL MIN関数の紹介

SQL MIN関数は、値の集合の中で最小値を返します。以下にMIN関数の構文を示します。

MIN(expression)Code language: SQL (Structured Query Language) (sql)

MAX関数と同様に、MIN関数もNULL値を無視し、DISTINCTオプションはMIN関数には適用できません。

SQL MIN関数の例

MIN関数の機能を実演するために、employeesテーブルを使用します。

employees_table

従業員の最低(最小)給与を見つけるには、employeesテーブルのsalary列にMIN関数を適用します。

SELECT 
    MIN(salary)
FROM
    employees;Code language: SQL (Structured Query Language) (sql)

試してみる

SQL MIN example

最低給与の従業員の情報を取得するには、次のサブクエリを使用します。

SELECT
	employee_id,
	first_name,
	last_name,
	salary
FROM
	employees
WHERE
	salary = (
		SELECT
			MIN(salary)
		FROM
			employees
	);
Code language: SQL (Structured Query Language) (sql)

試してみる

SQL MIN with Subquery example

まず、サブクエリが最小給与を返します。次に、外側のクエリは、サブクエリによって返された最低給与に等しい給与を持つ従業員を取得します。

GROUP BY句を使用したSQL MINの例

GROUP BY句とMIN関数を組み合わせて、各グループ内の最小値を見つけることがよくあります。

例えば、次のクエリは、各部署で最低給与の従業員を返します。

SELECT
	department_id,
	MIN(salary)
FROM
	employees
GROUP BY
	department_id;Code language: SQL (Structured Query Language) (sql)

試してみる

SQL MIN with GROUP BY example

GROUP BY句は、部署ごとに従業員をグループ化します。各グループに対して、クエリは最低給与の行を返します。

部署名が表示されている限り、結果セットは有益ではありません。

結果セットに部署の名前を組み合わせるには、次のように内部結合句を使用してemployeesテーブルとdepartmentsテーブルを結合する必要があります。

SELECT
	d.department_id,
	department_name,
	MIN(salary)
FROM
	employees e
INNER JOIN departments d ON d.department_id = e.department_id
GROUP BY
	d.department_id;Code language: SQL (Structured Query Language) (sql)

試してみる

SQL MIN with INNER JOIN example

ORDER BY句を使用したSQL MINの例

MIN関数の結果でグループをソートするには、ORDER BY句にMIN関数を配置する必要があります。

次のクエリは、まず各部署で最低給与の従業員を取得し、次にこれらの部署を給与の昇順でソートします。

SELECT
	d.department_id,
	department_name,
	MIN(salary)
FROM
	employees e
INNER JOIN departments d ON d.department_id = e.department_id
GROUP BY
	d.department_id
ORDER BY
	MIN(salary);Code language: SQL (Structured Query Language) (sql)

試してみる

SQL MIN with ORDER BY example

HAVING句を使用したSQL MINの例

HAVING句を使用して、グループのフィルタ条件を指定します。MIN関数の結果に基づいてグループをフィルタリングするには、HAVING句にMIN関数を配置します。

たとえば、次のクエリは、各部署で最低給与の従業員を取得します。次に、給与が3000未満の部署のみを含めます。

SELECT
	d.department_id,
	department_name,
	MIN(salary)
FROM
	employees e
INNER JOIN departments d ON d.department_id = e.department_id
GROUP BY
	d.department_id
HAVING
	MIN(salary) < 3000;Code language: SQL (Structured Query Language) (sql)

試してみる

SQLMIN with HAVING example

これで、値の集合の中で最小値を見つけるためにSQL MIN関数を使用する方法がわかるはずです。

このチュートリアルは役に立ちましたか?