SQL Выберите только строки с минимальным значением в столбце с условием «Где»
Таблица:
| 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 |
Как выбрать одну строку для каждого productId с минимальным порядковым номером, который не отклоняется?
Ожидаемый результат:
| id | productId | orderIndex | rejected | ------------------------------------------ | 2 | 1 | 1 | 0 | | 4 | 2 | 0 | 0 | | 6 | 3 | 0 | 0 |
Я пробовал этот запрос, но не получил правильный результат:
SELECT id, productId, min(orderIndex) FROM table WHERE rejected = 0 GROUP BY productId
Этот не работает также:
SELECT id, productId, min(orderIndex) FROM ( SELECT id, productId, orderIndex FROM table WHERE rejected = 0 ) t GROUP BY productId