Если в условиях поиска для вложенного запроса нужно указать агрегатную функцию, используется HAVING..
Пример. Определить покупателя, у которого средняя покупка больше средней покупки других покупателей, и среднее число покупки этого покупателя.
SELECT R1.POKUP, AVG(Rl.KOLVO) FROM RASHOD R1
GROUP BY R1.POKUP
HAVING AVG(R1.KOLVO) >= ALL (SELECT AVG(R2.KOLVO) FROM RASHOD R2 GROUP BY R2. POKUP)
Пример. Определить адрес покупателя, который приобрел наибольшее количество товаров.
SELECT P.* FROM POKUPATELI P
WHERE P.POKUP = (SELECT RR.POKUP FROM RASHOD RR GROUP BY RR.POKUP
HAVING SUM(RR.KOLVO) >= ALL (SELECT SUM(RRR.KOLVO) FROM RASHOD RRR GROUP BY RRR.POKUP))
Пример. Перечислить все товары, которые приобрел покупатель, купивший наибольшее количество товаров.
SELECT DISTINCT R.TOVAR FROM RASHOD R
WHERE R.POKUP = (SELECT RR.POKUP FROM RASHOD RR
GROUP BY RR.POKUP
HAVING SUM(RR.KOLVO) >= ALL (SELECT SUM(RRR.KOLVO)
FROM RASHOD RRR GROUP BY RRR.POKUP))
Пример. Перечислить стоимость единиц товаров, которые приобрел покупатель, купивший наибольшее количество товаров
SELECT DISTINCT R.TOVAR, T.ED_IZM, T.ZENA FROM RASHOD R, TOVARY T
WHERE T.TOVAR = R.TOVAR AND R.POKUP = (SELECT RR.POKUP
FROM RASHOD RR GROUP BY RR.POKUP
HAVING SUM(RR.KOLVO) >= ALL
(SELECT SUM(RRR.KOLVO)
FROM RASHOD RRR GROUP BY RRR.POKUP))