Реализация функции в postgresql (умножение )
Как реализовать функцию, которая находит средний чек по разным группам товаров в postgresql? Обязательно через одну функцию, а не выборку. Есть вот такая таблица:
create table stocks (id int, product char(25), orders int, age int, cost int);
Уже заполненная из 100 строк.
- Нужно, чтобы функция умножала
ordersнаcostи выводила результат как таблицу (Нахождение среднего чека) - Чтобы мы вводили имя продукта в консоли, например, телефон или книга, и происходила сортировка. Вывод будет как 1 строчка: книга, количество заказов, стоимость.
- Нужно объединить пункт 1 и 2. Результат функции должен быть в 1 строчке такой: (вводим название продукта, например книга) и получаем: книга, средний чек.
Ответы (1 шт):
Автор решения: Maksvell_777
→ Ссылка
Функция:
CREATE FUNCTION avg_receipt(p_name char(25))
RETURNS TABLE (product char(25), orders int, cost int, avg_r int)
AS $$ BEGIN
RETURN QUERY SELECT stocks.product, stocks.orders, stocks.cost, (stocks.orders * stocks.cost) avg_rec FROM stocks WHERE stocks.product = p_name;
RETURN;
END; $$ LANGUAGE 'plpgsql';
Пример вызова функции:
SELECT avg_receipt('Martin Eden');