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

时间:2014-05-19 07:26:27

标签: sql sql-server sql-server-2008 tsql group-by

我有一个类似于下面的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

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

1 个答案:

答案 0 :(得分: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