SQL Seleccione solo filas con valor mínimo en una columna con la condición Where
Mesa:
| id | productId | orderIndex | rejected | ------------------------------------------ | 1 | 1 | 0 | 1 | | 2 | 1 | 1 | 0 | | 3 | 1 | 2 | 0 | | 4 | 2 | 0 | 0 | | 5 | 2 | 1 | 1 | | 6 | 3 | 0 | 0 |
¿Cómo puedo seleccionar una fila por ProductId con un pedido mínimo que no se rechaza?
Resultado Esperado:
| id | productId | orderIndex | rejected | ------------------------------------------ | 2 | 1 | 1 | 0 | | 4 | 2 | 0 | 0 | | 6 | 3 | 0 | 0 |
Intenté esta consulta, pero no recibí el resultado correcto:
SELECT id, productId, min(orderIndex) FROM table WHERE rejected = 0 GROUP BY productId
Este tampoco funciona:
SELECT id, productId, min(orderIndex) FROM ( SELECT id, productId, orderIndex FROM table WHERE rejected = 0 ) t GROUP BY productId