Мне нужно написать функцию PL / SQL, которая вычисляет значение, которое зависит от всех элементов в столбце.
Например, предположим, у меня есть столбец X с номерами 1, 2, 3, 4, 5. Я хочу написать функцию, которая принимает этот столбец в качестве аргумента и возвращает максимальные значения, так что
SELECT FUN(X) FROM SOME_TABLE
возвращает столбец со значениями 5, 5, 5, 5, 5.
При прямом подходе к этому можно написать что-то вроде:
CREATE OR REPLACE FUNCTION MMMAX (X NUMBER)
RETURN NUMBER
IS
Y NUMBER;
BEGIN
SELECT MAX(X) INTO Y FROM DUAL;
RETURN Y;
END;
Однако такая функция не будет использовать весь столбец в качестве аргумента.В этом примере он будет последовательно применять MAX (X) к каждой строке X вместо того, чтобы находить максимум по всему столбцу X.
Итак, как мне написать функцию, которая вычисляет и возвращает значение на основе всего столбцаХ, а не последовательно по его рядам?