Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 расширение значения в  [new]
Anton_Demin
Member

Откуда: Ставрополь
Сообщений: 266
Добрый день

Есть такой набор данных
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
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 ( подскажите решение, пожалуйста
11 июн 19, 08:04    [21906328]     Ответить | Цитировать Сообщить модератору
 Re: расширение значения в  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1379
Anton_Demin,

если есть поле, позволяющее однозначно отсортировать данные в указанном порядке, то банальный SUM(IS_CHANGE) over(order by <то само еполе, задающее порядок>)
11 июн 19, 08:14    [21906329]     Ответить | Цитировать Сообщить модератору
 Re: расширение значения в  [new]
Elic
Member

Откуда: 1984. Выбраковка финно-угром продолжается. КЯЗ
Сообщений: 28975
Anton_Demin
но пока проблемы с вычислением поля P ( подскажите решение, пожалуйста
STFF start_of_group
11 июн 19, 08:14    [21906330]     Ответить | Цитировать Сообщить модератору
 Re: расширение значения в  [new]
AmKad
Member

Откуда:
Сообщений: 4979
Anton_Demin,

count(decode(is_change, 1, 1)) over ([partition by ...] order by хз) p
11 июн 19, 08:47    [21906348]     Ответить | Цитировать Сообщить модератору
 Re: расширение значения в  [new]
Anton_Demin
Member

Откуда: Ставрополь
Сообщений: 266
Всем большое спасибо
Сделал по совету Анны, всё отлично
SUM(is_change) OVER (ORDER BY id1,id2)
11 июн 19, 10:02    [21906394]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить