Предположим, у вас есть таблица Oracle, TABLE A, как показано ниже:
В этой таблице основными полями являются FIELD1 и FIELD2. Ты это видишь:
а) Для пары (ААА, 1) имеем два значения: 200,03 и 100,02; б) Для пары (ВВВ, 3) имеем два значения: 300,04 и 400,05.
Мы хотели бы сделать агрегацию суммы следующим образом, обновив следующую таблицу:
В поле 3 таблицы B мы хотели бы сохранить сумму 200,03 и 100,02 по отношению к паре (AAA, 1), и мы хотели бы сохранить сумму 300,04 и 400,05 по отношению к паре (BBB, 3) .
Пожалуйста, представьте, что у нас может быть много разных пар: (ZZZ, 77) (YYY, 12) ... и так далее.
Предположим, что записей, относящихся к одной паре, может быть больше двух, и в этом случае мы должны суммировать значения всех записей, относящихся к одной и той же паре.
В нашем простом случае результат будет следующим:
В реальном случае есть таблица A с примерно 20 миллионами записей, поэтому я хотел бы написать программное обеспечение на PL/SQL, используя BULK COLLECT, UPDATE и FORALL.
Что было бы лучшим подходом? Предоставьте код PL/SQL, чтобы объяснить, как решить проблему.
Большое спасибо за рассмотрение моей просьбы.


