Мой запрос выглядит следующим образом:
SELECT
nvl(dd,'TOTAL') "Subject",
SUM(cnt) "Count,
SUM(pct) AS "%"
FROM
(
SELECT
dd,
COUNT(1) cnt,
round(RATIO_TO_REPORT(COUNT(1) ) OVER() * 100,2) AS pct
FROM
student p,
student_subject a
WHERE
p.sId = a.sId
AND student_type IN (
'1',
'2'
)
AND dd IN (
'MATH',
'SCIENCE',
'HISTORY'
)
GROUP BY
dd
ORDER BY
1
)
GROUP BY
ROLLUP(dd)
ORDER BY
1;
Мой вывод должен выглядеть следующим образом:
Subject Count %
MATH 33 23.2%
SCIENCE 24 11.46%
HISTORY 56 44.778%
TOTAL 113 85.4.2%
Если у конкретного субъекта нет данных, он все равно должен предоставить строке 0 значений как показано ниже
Subject Count %
MATH 33 23.20%
SCIENCE 0 0.00%
HISTORY 56 44.77%
TOTAL 113 85.42%
То, что я получаю, теперь справа, без строки НАУКИ, которая не нужна,
Subject Count %
MATH 33 23.20%
HISTORY 56 44.77%
TOTAL 113 85.42%
Что я сделал, я удалил предложение dd IN "И dd IN («МАТЕМАТИКА», «НАУКА», «ИСТОРИЯ») «Однако я не могу добраться до другого внутреннего выбора, чтобы выбрать 3 предмета.