Извините за мой английский. Я добавляю новое условие в мой запрос следующим образом:
$query->andWhere(['or',
["<", "o.score", $score_operator],
["<", "d.score", $score_delivery],
["<", "SUM(sd.score)/count(DISTINCT sd.id)",$score_dishes]]);
Buth я получил ошибку:
General error: 1111 Invalid use of group function
Затем я прочитал, что должен использовать наличие в 3-й строке, но я не знаю, как поставить условие «иметь» в «где».
Для условия / фильтра, относящегося к функции агрегирования, вы должны использовать наличие, а не где
$query->having("SUM(sd.score)/count(DISTINCT sd.id) < " .$score_dishes);
где работают над строками таблицы, работающими с выбранными строками результатов.
http://www.yiiframework.com/doc-2.0/yii-db-query.html#having()-detail
начиная с версии 2.0.11 вы можете также использовать filteHaving, если у вас есть http://www.yiiframework.com/doc-2.0/yii-db-query.html#filterHaving()-detail
Других решений пока нет …