我有一个查询,当前看起来像这样(简体)
SELECT
m.academicyr,
m.ncyeargrp_format AS YEAR,
Count(*) AS cohort,
round (Avg (m.per_att),4) AS attendance,
Round (per_cohort,4)
FROM
(
SELECT
s.academy,
s.academicyr,
s.adno,
s.ncyeargrp_format,
CASE WHEN a.possible_att_marks = 0 THEN NULL
ELSE (a.present_att_marks / a.possible_att_marks)
END
AS per_att,
a.possible_att_marks,
a.present_att_marks,
a.period,
Count (*) AS cohort,
Count (*) / Sum(Count(*)) AS per_cohort
FROM
VACADEMY_STU_all s
LEFT JOIN
vacademy_attendance a
ON s.academy = a.academy
AND s.adno = a.adno
AND s.term = a.period
AND s.academicyr = a.academicyr
WHERE
s.academy = 'CAN'
AND s.academicyr = '1617'
AND a.period = '1'
GROUP BY
s.academy,
s.academicyr,
s.adno,
s.ncyeargrp_format,
a.possible_att_marks,
a.present_att_marks,
a.period
) m
GROUP BY
m.academicyr,
m.ncyeargrp_format,
m.per_cohort
ORDER BY
To_Number(Trim(regexp_replace(m.ncyeargrp_format, '[A-Za-z]')))
我在这里尝试将计数*除以计数*的总和。 我收到错误消息“不是单个组函数”。
该查询在没有第一个选择时使用'Round(Per_cohort,4)'的情况下也可以正常工作,并且也从内部选择和分组依据中删除。
我期望的结果是
年份组螺柱计数同类人群的百分比年份7126 18.18%98.10%年份8139 20.06%93.88%年份9143 20.63%90.56%年份10143 20.63%95.94%年份11142 20.49%88.45%总计693 100.00%93.28 %
我的所有其他列均正常运行,我只需要对同类群组进行百分比计算,因此,同类群组列中的值除以同类群组列的总数(已使用count *创建)。
任何帮助,不胜感激。
谢谢