Посоветуйте корректный подход
Доброго времени суток!
Имеется набор данных (таблица / результат запроса / etc):
| item_id | arg1 | arg2 | arg3 | arg4 | arg5 | arg6 | arg7 |
|---|---|---|---|---|---|---|---|
| 1 | 0 | 1 | 3 | 1 | 1 | 1 | 0 |
| 2 | 1 | 0 | 5 | 2 | 1 | 1 | 0 |
| 3 | 0 | 1 | 7 | 3 | 0 | 0 | 1 |
| 4 | 1 | 0 | 9 | 4 | 0 | 0 | 1 |
| 5 | 0 | 2 | 7 | 5 | 1 | 1 | 0 |
Необходимо в результате запроса вернуть отчёт по этой таблице:
| / | arg1 | arg2 | arg3 |
|---|---|---|---|
| arg4 | sum() with where clause by arg6 | sum() with where clause by arg7 | count() with where clause by arg7 |
| arg5 | sum() with where clause by arg6 | sum() with where clause by arg7 | count() with where clause by arg7 |
В MS SQL для таких отчётов раньше пользовался возможностями MSSAS, т.к. он (MSSAS) был на этом сервере оправдан количеством отчётов (порядка 50 отчётов, без учёта пользовательских).
На текущем проекте применение OLAP не оправдано, т.к. поднимать его ради одного отчёта не совсем выгодно.
В связи с этим вопрос - как реализовать построение указанного отчёта без использования Oracle OLAP?
Моё предположительное решение:
Пока в голову приходит только использование конвеерной функции, которая внутри себя будет вычислять значения для каждой ячейки каждой строчки и возвращать результат, но есть подозрения, что я верчу диван не в ту сторону и есть более простые решения.
Версия Oracle - 19c