Ниже у меня есть запрос, где у меня есть общий 1-й язык, на котором говорят студенты на каждом языке
CTE
WITH Lang AS
(
SELECT
language,
studentcount,
SUM(Studentcount) AS total
FROM
(SELECT
l.longtext AS language,
COUNT(distinct s.studentnr) AS Studentcount
FROM
student s
JOIN
pupil p on p.id = s.pupilid
JOIN
pupillanguage pl on pl.personid = p.id
JOIN
language l on l.id = pl.languageid
GROUP BY
l.longtext
ORDER BY
Studentcount DESC
) t
GROUP BY
language, Studentcount
)
Запрос
SELECT initcap(language), Studentcount, total
FROM Lang
UNION ALL
SELECT cast(count(language) as varchar(6)) ||' Languages', null, null
FROM Lang
Теперь у меня есть 1 основная проблема, которая заключается в назначении ОБЩЕЙ СУММЫ значения для студентов. Мне это нужно, чтобы я мог вычислить процент из числа студентов / всего студентов в столбце. Однако, очевидно, моя общая стоимость не дает мне то, что мне нужно.
выход
languages students total
------------------------------
French 734 734
Afrikaans 93 93
Greek 117 117
German 55 55
Armenian 160 160
Malaysian 5 5
Danish 15 15
American 5 5
Swedish 24 24
Bulgarian 1043 1043
Ожидаемый результат:
languages students Percentage
-----------------------------------
French 734 24,46
Afrikaans 93 3,12
Greek 117 3,9
German 55 1,83
Armenian 160 5,33
Malaysian 5 0,16
Danish 15 0,5
American 5 0,16
Swedish 24 0,8
Bulgarian 1043 34,76
Как рассчитать итоговую итоговую сумму как значение для расчета процентов