SQL查询 - 以百分比表示的状态数

时间:2012-03-05 15:48:31

标签: sql db2

我有一些带有状态记录的表SR(超过5条记录就是这个例子):

ID   STATUS
1    NEW
2    OPEN
3    OPEN
4    PENDING
5    PENDING

我想以这种格式获得表格:

STATUS   PERCENTAGE

NEW       20
OPEN      40
PENDING   40

我编写了SQL查询,但我无法使其工作:

with HELPTABLE as
(select count(*) as NUMBER
from SR
)
select 
    SR.STATUS,
    (count (*)) / (HELPTABLE.NUMBER) * 100
from 
    SR, HELPTABLE
group by 
    SR.status

使用HELPTABLE我得到结果5.

如果我不放HELPTABLE.NUMBER我会得到一些结果。

如果我将(count (*))除以2说我得到结果,但是如果我把HELPTABLE.NUMBER设为5,我就会收到错误。

感谢您的帮助。

1 个答案:

答案 0 :(得分:5)

我猜测SQL Server 2005或更高版本

select
     T.STATUS, 100.0 * COUNT(*) / Total
from
    (
     SELECT 
        ID, STATUS, COUNT(*) OVER () AS Total
     FROM
        SR
    ) T
group by 
     T.status, T.Total