SQL Nur Zeilen mit dem Mindestwert in einer Spalte mit der WHERE-Bedingung auswählen
Tabelle
| 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 |
Wie kann ich eine Zeile pro Produkt-ID mit einem Mindestbestell-Index auswählen, der nicht abgelehnt wurde?
Erwartetes Ergebnis
| id | productId | orderIndex | rejected | ------------------------------------------ | 2 | 1 | 1 | 0 | | 4 | 2 | 0 | 0 | | 6 | 3 | 0 | 0 |
Ich habe diese Abfrage versucht, aber kein korrektes Ergebnis erhalten:
SELECT id, productId, min(orderIndex) FROM table WHERE rejected = 0 GROUP BY productId
Dieser funktioniert auch nicht:
SELECT id, productId, min(orderIndex) FROM ( SELECT id, productId, orderIndex FROM table WHERE rejected = 0 ) t GROUP BY productId