Ошибка MySQL с предложением WHERE и предложением GROUP BY - PullRequest
0 голосов
/ 11 декабря 2018

введите описание изображения здесь

Я пытаюсь написать запрос, который извлекает имена всех продавцов, у которых есть заказы на сумму более $ 1300 из таблиц выше.(у каждого продавца только один идентификатор.)

Вот моя попытка:

SELECT name, sum(amount)

FROM salesperson

JOIN orders

ON salesperson.ID = orders.salesperson_id

WHERE sum(amount) > 1300 

GROUP BY name; 

Однако отображается ошибка: ОШИБКА 1111 (HY000): недопустимое использование групповой функции.

Когда я удаляю предложение where, оно работает нормально и возвращает следующее:

введите описание изображения здесь

Что очень похоже на то, что я хочу, за исключением того, что естьнет фильтра для суммы (суммы) менее 1300.

Что я сделал не так с предложением where и как его решить?

1 Ответ

0 голосов
/ 11 декабря 2018

Агрегат не может отображаться в предложении WHERE, но вы можете использовать HAVING следующим образом:

SELECT name, sum(amount)

FROM salesperson

JOIN orders

ON salesperson.ID = orders.salesperson_id

GROUP BY name

Having sum(amount) > 1300; 
...