2010-10-13 16 views
6

Soy un novato en SQL, estoy usando esta consulta para buscar el valor mínimo en el peso del campo de mi tabla.En SQL, ¿cómo obtengo todas las filas donde el valor de una columna es el más bajo en la tabla?

SELECT product_id, 
     MIN(weight) 
    FROM table 
WHERE 1; 

¿Muestra un campo con el valor mínimo, pero solo uno? Pero tengo muchos productos con el mismo peso mínimo. ¿Hay alguna manera de especificar que necesito mostrar todos los demás productos?

+2

¿Quiere ver productos con el valor de peso mínimo para la tabla? Si hay más de uno, quiere verlos todos, ¿correcto? ¿Para qué base de datos? –

+4

Te das cuenta de que tu 'where 1' no está haciendo nada, ¿verdad? Puede eliminarlo y aún así devolverá exactamente lo mismo. –

Respuesta

16
select * from table where weight = (select MIN(weight) from table) 
+0

Funciona muy bien, gracias Fosco! :) – Zenet

+1

+1: se ve bien ... – RedFilter

3

Esto puede ser lo que usted está pidiendo:

SELECT product_id FROM table WHERE weight = (SELECT MIN(weight) FROM table); 

Como se puede adivinar, esto seleccionará todos prodict_id s donde el peso es igual al peso mínimo en la tabla.

1

No está seguro de cuál es exactamente lo que quiere, pero ninguno de ellos debe hacer el truco:

SELECT product_id, MIN(weight) FROM table WHERE 1 GROUP BY product_id 

(Lista todas las ID de producto y el peso mínimo de identificación del producto)

SELECT product_id, weight FROM table WHERE weight = (SELECT min(weight) FROM table) 

(Encontrar todos los ID de productos donde el peso es igual al peso mínimo)

SELECT min(weight) FROM table; 

(Encontrar el mínimo absoluto peso, y eso es todo)

Cuestiones relacionadas