次の表があります。
ItemID Price
1 10
2 20
3 12
4 10
5 11
2 番目に低い価格を見つける必要があります。これまでのところ、機能するクエリがありますが、それが最も効率的なクエリかどうかはわかりません。
select min(price)
from table
where itemid not in
(select itemid
from table
where price=
(select min(price)
from table));
3 番目または 4 番目の最低価格を見つけなければならない場合はどうすればよいですか? 他の属性や条件については言及していません...これを行うより効率的な方法はありますか?
PS: 最小値は一意の値ではないことに注意してください。たとえば、項目 1 と 4 は両方とも最小値です。単純な注文ではうまくいきません。