Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как работает запрос OVER partition by + order by / 3 сообщений из 3, страница 1 из 1
28.04.2021, 11:40
    #40066622
polin11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает запрос OVER partition by + order by
Есть тестовая таблица

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
create table test(
id serial not null,
name text null,
price int, 
dept int 
)

INSERT into test values(1, 'A', 10, 1)
INSERT into test values(2, 'A', 20, 1)
INSERT into test values(3, 'A', 30, 2)
INSERT into test values(4, 'B', 10, 1)
INSERT into test values(5, 'B', 20, 2)



Запрос

Код: sql
1.
2.
3.
select name, sum(price) OVER( partition by dept)
from test
order by name


возвращает сумму подсчитанную для каждого поля dept - тут все понятно.

Почему запрос с order by
Код: sql
1.
2.
3.
select name, sum(price) OVER( partition by dept order by name)
from arm
order by name



возвращает другое значение сумм, ведь должна меняться только сортировка,
по какой логике выполняется этот запрос, как считается сумма?
...
Рейтинг: 0 / 0
28.04.2021, 11:43
    #40066625
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает запрос OVER partition by + order by
polin11
Почему запрос с order by
это накопительный итог
...
Рейтинг: 0 / 0
28.04.2021, 15:44
    #40066780
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как работает запрос OVER partition by + order by
Оконные функции с «форточкой» или как пользоваться фреймом

Там есть "Давайте начнем с простого момента — разницы функции SUM с указанием сортировки и без нее"
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как работает запрос OVER partition by + order by / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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