SQL:如何显示通过和失败学生的百分比?

Mad*_*kar 2 sql sql-server sql-server-2008

我有一张桌子,里面有学生的数据和结果.

ID  Name  Result
1   St1   FAIL
2   St2   PASS
3   St3   PASS
4   St4   PASS
5   St5   FAIL
6   St6   PASS
Run Code Online (Sandbox Code Playgroud)

我希望通过和失败的学生的总百分比四舍五入到小数点后两位.我怎么能做到这一点?

Mad*_*kar 6

SQL:

SELECT 
    ROUND(
        SUM(
            CONVERT(
                FLOAT,
                CASE WHEN Result = 'PASS' THEN 1 
                     ELSE 0 
                     END
            )
        )
        /COUNT(*) * 100,
        2
    ) AS 'Percent Pass',
    ROUND(
        SUM(
            CONVERT(
                FLOAT,
                CASE WHEN Result = 'FAIL' THEN 1 
                     ELSE 0 
                     END
            )
        )
        /COUNT(*) * 100,
        2
    ) AS 'Percent Fail' 
FROM StudentsResults
Run Code Online (Sandbox Code Playgroud)

结果:

Pass    Fail
66.67   33.33
Run Code Online (Sandbox Code Playgroud)