Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / расширение значения в / 5 сообщений из 5, страница 1 из 1
11.06.2019, 08:04
    #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
11.06.2019, 08:14
    #39825180
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
расширение значения в
Anton_Demin,

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

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


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