У меня есть сохраненная функция, которая вычисляет статус объекта (этот статус НЕ является атрибутом объекта, но его необходимо рассчитать).
В операторе SELECT
я хочу знать, сколько элементов имеет какой статус.
На данный момент я получил следующее:
SELECT my_function(entity_id) AS status,
COUNT(*)
FROM some_table
GROUP BY my_function(entity_id) -- entity_id is a column of some_table
ORDER BY status;
Это работает, но я нахожу довольно уродливым повторять вызов функции внутри оператора GROUP BY
.
Приведенный выше код является лишь примером. Фактическая функция определена в пакете и имеет несколько входных параметров.
Можно ли сделать это без ссылки на хранимую функцию в выражении GROUP BY?