@khodos_dmitry

Ошибка Invalid use of group function в MySQL. В чем проблема?

SELECT * FROM `cpl_mfo` JOIN `cpl_mfo_loans` ON `cpl_mfo_loans`.`mfo_id` = `cpl_mfo`.`id` WHERE MIN(`l_min_sum`) <= '999999' AND MAX(`l_max_sum`) >= '0' AND MIN(`l_min_time`) <= '999' AND MAX(`l_max_time`) >= '0' AND MIN(`l_min_age`) <= '100' AND MAX(`l_max_age`) >= '0' AND MIN(`l_min_percent`) <= '100' AND MAX(`l_max_percent`) >= '0' AND `how_get` LIKE '%%' AND `payments` LIKE '%%' AND `country` = 'Россия' GROUP BY `mfo_id` ORDER BY `rating` DESC

Group by здесь не причем. Убирал его, ошибка осталась.
  • Вопрос задан
  • 5792 просмотра
Решения вопроса 2
martin74ua
@martin74ua Куратор тега MySQL
Linux administrator
min и max функции в таком контексте не используются. Без группировки не работают.
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
WHERE работает до GROUP BY, соответственно использование агрегатных функций (MIN, MAX, и т.п.) во WHERE не допускается.
Кроме того, начиная с версии 5.7 при использовании группировки все поля в SELECT должны быть либо агрегатными функциями, либо полями группировки. SELECT * выдаст ошибку.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы