Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Оконные функции / 3 сообщений из 3, страница 1 из 1
22.12.2015, 17:41
    #39134957
crazyfruit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оконные функции
Приветствую, форумчане.
Столкнулся с необходимостью высчитать агрегатное значение от агрегатной функции (максимум от сумм частного, т.е max(sum(a*b))) для чего решил использовать имеющиеся в Postgres'е оконные функции (window functions).

Однако столкнулся с проблемой - максимальные значения "накапливаются" (да, я понимаю,что так оно и должно быть) , в то время как мне нужно вывести одно максимальное значение (т.е отбросить строки в которых значение < максимального). Как это сделать?


Сам текст запроса ниже:

Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT customers.country,goods.category_id, MAX(SUM(orders_details.quantity*goods.price)) 
OVER (PARTITION BY customers.country ORDER BY goods.category_id)
FROM orders 
JOIN orders_details ON (orders_details.order_id = orders.id) 
INNER JOIN goods ON (orders_details.item_id = goods.id) 
INNER JOIN customers ON (customers.id = orders.customer_id) 
GROUP BY customers.country,goods.category_id
...
Рейтинг: 0 / 0
22.12.2015, 17:55
    #39134976
p2.
p2.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оконные функции
crazyfruitКак это сделать?не использовать аналитику там, где нужен итог.
...
Рейтинг: 0 / 0
23.12.2015, 00:53
    #39135284
crazyfruit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оконные функции
p2., спасибо за наводку. Действительно использование здесь оконных функций неуместно. Достаточно простой сортировки.
Задача решена, спасибо!
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Оконные функции / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]