方法1: サブクエリを使用する方法
SELECT DISTINCT salary
FROM employees
ORDER BY salary DESC
LIMIT 1 OFFSET 1;
このクエリは、給与を降順にソートし、2番目の給与を取得します。OFFSET 1は、最初の給与をスキップするために使用されます。
方法2: MAX関数とサブクエリを組み合わせる方法
SELECT MAX(salary)
FROM employees
WHERE salary < (SELECT MAX(salary) FROM employees);
このクエリは、最大給与よりも低い給与の中で最大の給与を取得します。
方法3: LIMITとサブクエリを組み合わせる方法
SELECT salary
FROM employees
ORDER BY salary DESC
LIMIT 1, 1;
このクエリは、給与を降順にソートし、2番目の給与を取得します。LIMIT 1, 1は、結果の2番目の行を取得するために使用されます。
これらはいくつかの一般的な方法ですが、実際のデータベース構造や要件によって最適な方法が異なる場合があります。データベースのスキーマやテーブルの構造に応じて、適切なクエリを選択してください。必要に応じてインデックスを使用することもお勧めします。