我有一些带有状态记录的表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,我就会收到错误。
感谢您的帮助。
答案 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