una soporta segundo rapida por optimizar optimizacion mas lentas hacer cuantas consultas consulta con como sql db2 subquery

soporta - SQL. ¿Hay alguna manera eficiente de encontrar el segundo valor más bajo?



optimizar consultas mysql explain (4)

No estoy seguro de si este sería el más rápido, pero sería más fácil seleccionar el segundo, tercero, etc. Simplemente cambie el valor TOP.

ACTUALIZADO

SELECT MIN(price) FROM table WHERE price NOT IN (SELECT DISTINCT TOP 1 price FROM table ORDER BY price)

Tengo la siguiente tabla:

ItemID Price 1 10 2 20 3 12 4 10 5 11

Necesito encontrar el segundo precio más bajo. Hasta ahora, tengo una consulta que funciona, pero no estoy seguro de que sea la consulta más eficiente:

select min(price) from table where itemid not in (select itemid from table where price= (select min(price) from table));

¿Qué pasa si tengo que encontrar el tercer o el cuarto precio mínimo? Ni siquiera estoy mencionando otros atributos y condiciones ... ¿Hay alguna forma más eficiente de hacer esto?

PD: tenga en cuenta que el mínimo no es un valor único. Por ejemplo, los elementos 1 y 4 son ambos mínimos. El orden simple no funciona.


Puede usar el orden por y luego seleccionar el número de fila 2 usando el método que se encuentra en esta respuesta .


SELECCIONAR MIN (precio) FROM tabla DONDE precio> (SELECCIONAR MIN (precio) FROM tabla)


select price from table where price in ( select distinct price from (select t.price,rownumber() over () as rownum from table t) as x where x.rownum = 2 --or 3, 4, 5, etc )