Итак, у меня есть таблица с динамическими заголовками.
Приведенный ниже запрос используется для генерации дат, которые будут использоваться для таблицы.query.
select listagg(INSERT_DATE,
''',''') WITHIN GROUP(ORDER BY INSERT_DATE)
from (select distinct INSERT_DATE from TEST_TBL order by INSERT_DATE asc)
Результат из вышеприведенного запроса используется для предложения in для ниже.
select * from (select log, lot, insert_date from TEST_TBL)
pivot(count(distinct log || insert_date)
for(insert_date) in ('17-JAN-19', '21-JAN-19', '22-JAN-19'))
Теперь я хочу получить этот результат, в котором будет отображаться сумма по столбцам.в конце всех рядов.Я пытался использовать GROUP BY ROLLUP, но он не работает.
Я пробовал этот запрос:
select *
from (select * from (select log, lot, insert_date from TEST_TBL) pivot(count(distinct log || insert_date)
for(insert_date) in ('17-JAN-19', '21-JAN-19', '22-JAN-19')))
group by rollup (log);
Может кто-топомогите мне по какому запросу использовать?Спасибо.
Редактировать: я использовал решение @ q4za4 и пришел к этому последнему запросу
from (select *
from (select log,
lot,
insert_date
from TEST_TBL)
pivot(
count(distinct lot || insert_date)
for (insert_date)
in ('17-JAN-19','21-JAN-19','22-JAN-19'))
)
UNION ALL
select 'TOTAL # OF LOGS',
sum(jan1719),sum(jan2119),sum(jan2219)
FROM (select *
from (select log,
lot,
insert_date
from TEST_TBL)
pivot(
count(distinct lot || insert_date)
for (insert_date)
in (
'17-JAN-19' as jan1719,'21-JAN-19' as jan2119,'22-JAN-19' as jan2219
)))
Спасибо также решению @Ponder Stibbons, которое также помогло мне, давмне идея сделать дополнительную часть в моем listagg-запросе, чтобы создать первую строку целевого запроса.