Поскольку вы используете агрегирование для этого столбца, это уже не c
, а "агрегированный с", поэтому вы не можете использовать его в предложении order by.
Вам необходимо присвоить этому столбцу псевдоним, чтобы использовать его по порядку:
select a,b,min(c) as min_c from tablename where e=1 and f=1 group by a,b order by a,b,min_c
РЕДАКТИРОВАТЬ:
Почему столбец c недоступен?
В то время как в операторе мы используем группу предложений by, наша исходная таблица преобразована в новую временную.
В вашем случае вы использовали столбцы a и b для группировки, данные в этих столбцах не будут изменены, а будут ограничены уникальными.
В столбце c
вы используете функцию, которая для каждой уникальной группы будет извлекать наименьшее значение c, для этого необходимо создать новый столбец, в котором будут храниться эти результаты.
Предложение order by - это последняя часть запроса, которая выполняется в секции select.Таким образом, результат временной таблицы не является исходной.
Простой порядок выполнения операторов выглядит следующим образом:
FORM
JOIN
WHERE
GROUP BY
HAVING
SELECT
ORDER BY