код ошибки 1064, когда я пытаюсь использовать больше, чем для агрегата - PullRequest
0 голосов
/ 09 марта 2019
    (SELECT discount_percent
    FROM products
    WHERE discount_percent > AVG(discount_percent)

Я не уверен, что я делаю не так

Ответы [ 2 ]

2 голосов
/ 09 марта 2019
WHERE discount_percent >
    (SELECT discount_percent
    FROM products
    WHERE discount_percent > AVG(discount_percent)

должно быть:

WHERE discount_percent > (SELECT AVG(discount_percent) FROM products)

Вам не хватает закрывающей скобки после подзапроса. Но большая проблема в том, что вы не можете использовать функцию агрегирования в предложении WHERE, потому что агрегация выполняется после выбора строк. Кроме того, вам нужно, чтобы запрос возвращал только один результат, чтобы его можно было сравнить с >.

1 голос
/ 09 марта 2019

WHERE discount_percent > AVG(discount_percent)
вероятно, нужно изменить на
HAVING discount_percent > AVG(discount_percent)

Предложение HAVING используется для фильтрации агрегатных функций, таких как AVG, который вы вызываете.

Дополнительную документацию можно найти по этой ссылке: http://www.mysqltutorial.org/mysql-having.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...