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

SQL查询-以百分比表示的状态数,sql,db2,Sql,Db2,我的SR表中有一些状态记录(超过5条记录,这只是一个示例): 我想获取以下格式的表: 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表中有一些状态记录(超过5条记录,这只是一个示例):

我想获取以下格式的表:

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
使用帮助表,我得到结果5

如果我不把
HELPTABLE.NUMBER
放进去,我会得到一些结果

如果我把(
count(*)
)除以2,我得到的是结果,但如果我把
HELPTABLE.NUMBER
除以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

我猜是SQLServer2005或更高版本

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

我正在使用DB2。我有一些奇怪的结果。我必须在你的问题上保留我的声明?谢谢你的帮助,它很有效。我只是想知道为什么我不能用语句来完成它?对我来说这似乎是正确的?很抱歉打扰您,如果您知道答案的话,如果不知道的话,您可能会给出正确的查询nevermind@user1191860:我不确定,对不起,我正在使用DB2。我有一些奇怪的结果。我必须在你的问题上保留我的声明?谢谢你的帮助,它很有效。我只是想知道为什么我不能用语句来完成它?对我来说这似乎是正确的?很抱歉打扰您,如果您知道答案的话,如果不知道的话,您可能会给出正确的查询nevermind@user1191860:对不起,我不确定