Return 以百分比表示的聚合函数

Return an aggregate function as a percentage

我目前正在尝试 return 一系列聚合函数作为百分比。有人对如何操作有任何建议吗?

下面是SQL。

SELECT
 et.Term
,count(et.employeeid) as 'Total Enrolled'
,sum(et.retained) as 'Retained'
,sum(et.EnrollButSwitchedDept) as 'EnrollButSwitched'
,sum(et.NotEnrolled) as 'Not Enrolled'
,sum(et.Graduated) as 'Graduated'
--,CAST(sum(et.retained))*100.0 as 'Retained %'
,CAST (((sum(et.retained))*100.0)/(((count (et.EmployeeID)))) as Numeric(10,2) as 'Retained %'

FROM #EnrollmentTypes et

WHERE 1 = 1

GROUP BY et.Term

截至目前,我收到以下错误。

Incorrect syntax near 'CAST', expected 'AS'.

如果去掉一些不必要的括号,就可以更容易地看到其余的应该放在哪里。应该有效的更正查询:

SELECT
 et.Term
,COUNT(et.employeeid) AS 'Total Enrolled'
,SUM(et.retained) AS 'Retained'
,SUM(et.EnrollButSwitchedDept) AS 'EnrollButSwitched'
,SUM(et.NotEnrolled) AS 'Not Enrolled'
,SUM(et.Graduated) AS 'Graduated'
,CAST(SUM(et.retained) * 100.0 / COUNT(et.EmployeeID) AS NUMERIC(10,2)) AS 'Retained %'
FROM #EnrollmentTypes et
WHERE 1 = 1
GROUP BY et.Term