powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / расширение значения в
5 сообщений из 5, страница 1 из 1
расширение значения в
    #39825179
Фотография Anton_Demin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день

Есть такой набор данных
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
WITH t AS (
SELECT 1 id1, 111 id2, 1 is_change, 20 summ FROM DUAL UNION ALL
SELECT 1 id1, 111 id2, 0 is_change, 35 summ FROM DUAL UNION ALL
SELECT 1 id1, 111 id2, 0 is_change, 56 summ FROM DUAL UNION ALL
SELECT 1 id1, 111 id2, 0 is_change, 34 summ FROM DUAL UNION ALL
SELECT 1 id1, 111 id2, 0 is_change, 33 summ FROM DUAL UNION ALL
SELECT 1 id1, 111 id2, 1 is_change, 48 summ FROM DUAL UNION ALL
SELECT 1 id1, 111 id2, 0 is_change, 76 summ FROM DUAL UNION ALL
SELECT 1 id1, 111 id2, 0 is_change, 11 summ FROM DUAL UNION ALL
SELECT 2 id1, 333 id2, 1 is_change, 98 summ FROM DUAL UNION ALL
SELECT 2 id1, 333 id2, 0 is_change, 56 summ FROM DUAL UNION ALL
SELECT 2 id1, 333 id2, 0 is_change, 29 summ FROM DUAL UNION ALL
SELECT 2 id1, 333 id2, 0 is_change, 95 summ FROM DUAL)
SELECT * FROM t



необходимо получить сумму с учетом полей id1, id2 и is_change
хочу привести данные к следующему виду, что бы потом сделать SUM... PARTITION BY id1, id2, p
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
ID1 ID2  IS_CHANGE  P   SUMM
1   111  1          1   20
1   111  0          1   35
1   111  0          1   56
1   111  0          1   34
1   111  0          1   33
1   111  1          2   48
1   111  0          2   76
1   111  0          2   11
2   333  1          3   98
2   333  0          3   56
2   333  0          3   29
2   333  0          3   95



но пока проблемы с вычислением поля P ( подскажите решение, пожалуйста
...
Рейтинг: 0 / 0
расширение значения в
    #39825180
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton_Demin,

если есть поле, позволяющее однозначно отсортировать данные в указанном порядке, то банальный SUM(IS_CHANGE) over(order by <то само еполе, задающее порядок>)
...
Рейтинг: 0 / 0
расширение значения в
    #39825181
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton_Deminно пока проблемы с вычислением поля P ( подскажите решение, пожалуйстаSTFF start_of_group
...
Рейтинг: 0 / 0
расширение значения в
    #39825192
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton_Demin,

Код: plsql
1.
count(decode(is_change, 1, 1)) over ([partition by ...] order by хз) p
...
Рейтинг: 0 / 0
расширение значения в
    #39825213
Фотография Anton_Demin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем большое спасибо
Сделал по совету Анны, всё отлично
Код: plsql
1.
SUM(is_change) OVER (ORDER BY id1,id2)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / расширение значения в
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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