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

Код: 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
Как работает запрос OVER partition by + order by
    #40066625
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
polin11
Почему запрос с order by
это накопительный итог
...
Рейтинг: 0 / 0
Как работает запрос OVER partition by + order by
    #40066780
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Оконные функции с «форточкой» или как пользоваться фреймом

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


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