SQL-запрос - количество статусов в процентах - PullRequest
1 голос
/ 05 марта 2012

У меня есть таблица 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

Используя ПОМОЩЬ, я получаю результат 5.

Если я не ставлю HELPTABLE.NUMBER Я получаю некоторыерезультат.

Если я делю (count (*)), скажем, на 2, я получаю результат, но если я поставлю HELPTABLE.NUMBER, то есть 5, я получаю ошибку.

Спасибо запомощь.

1 Ответ

5 голосов
/ 05 марта 2012

Я предполагаю, что 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...