SQL Group by:如何获得超过某个分数的记录百分比

viv*_*ous 1 sql t-sql sql-server group-by sql-server-2008

我有一个类似于下面的SQL表.如何进行SQL组我可以在哪里获得每步9或以上的通话百分比?

所以基本上我想按StepID进行分组,然后我要显示其评级超过9的调用百分比.

CallID  StepID  Rating
1         1       8
1         2       6
1         3       9
2         1       10
2         2       10
2         3       5
3         1       7
3         2       5
3         3       8
Run Code Online (Sandbox Code Playgroud)

在这种情况下,在StepID = 1旁边,将显示33%(步骤ID 1的3次调用中有1次超过9次).

t-c*_*.dk 5

select 
 StepID, 
 cast(sum(case when Rating > 9 then 100.0 else 0 end)
 /count(*) as decimal(5,2)) pct
from yourtable
group by StepID
Run Code Online (Sandbox Code Playgroud)