Обобщена функция от страница за обобщена функция 1

Нека разгледаме тази задача:

Намерете максималната стойност сред средните цени за компютър, изчислени за всеки производител поотделно.

Изчисляването на средните стойности на разходите от производителите на труд не възлиза на:

урок

Стандартът обаче забранява използването на подзаявка като аргумент на обобщена функция, т.е. не можете да разрешите проблема по следния начин:

урок

В такива случаи се използва подзаявка в клаузата FROM:

обобщена

С помощта на нови езикови функции - прозоречни функции - тази задача може да бъде решена без подзаявка:

урок

Имайте предвид, че функциите на прозореца позволяват обобщена функция като аргумент. Ключовата дума DISTINCT е необходима тук, тъй като максималната стойност, изчислена за целия набор от средни стойности, ще бъде "приписана" на всеки производител.

Стандартът също така забранява използването на обобщена функция като аргумент на друга обобщена функция. Тези. не можем да решим проблема си по следния начин:

Но няма правила без изключения. Колкото и да е странно, такива конструкции работят в Oracle и горната заявка ще даде резултат: