Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Подсчет процентов  [new]
Volodya
Member

Откуда:
Сообщений: 450
Доброго времени суток!
Имеется запрос:
select count(*), isnull(name, 'ИТОГО') 
from tl 
group by name with rollup

Подскажите, пожалуйста, что нужно добавить в запрос, чтобы этим же запросом подсчитать проценты
от общего количества?
Заранее спасибо!
2 сен 09, 12:57    [7607717]     Ответить | Цитировать Сообщить модератору
 Re: Подсчет процентов  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
declare @t table(name varchar(10))
insert into @t(name)
select 'Ivanov' union all
select 'Ivanov' union all
select 'Ivanov' union all
select 'Petrov' union all
select 'Petrov'

select count(*) as cnt
      ,isnull(name, 'ИТОГО') as name
      ,cast(count(*) as decimal(7, 2)) / (select count(*) from @t) * 100 as percents
  from @t
group by name with rollup

cnt         name       percents
----------- ---------- ---------------------------------------
3           Ivanov     60.0000000000000
2           Petrov     40.0000000000000
5           ИТОГО      100.0000000000000

(3 row(s) affected)
2 сен 09, 13:06    [7607787]     Ответить | Цитировать Сообщить модератору
 Re: Подсчет процентов  [new]
DENIS_CHEL
Member

Откуда:
Сообщений: 23097
DECLARE @t TABLE ([name] varchar(1))

INSERT INTO @t([name])
SELECT 5  UNION ALL
SELECT 3  UNION ALL
SELECT 3 UNION ALL
SELECT 5 UNION ALL
SELECT 3 UNION ALL
SELECT 1

select count(*), isnull([name], 'ИТОГО') , cast(count(*) AS decimal(10,2)) /(select count(*) from @t )  *100
from @t as tl 
group by [name] with rollup
2 сен 09, 13:07    [7607794]     Ответить | Цитировать Сообщить модератору
 Re: Подсчет процентов  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
100.*count(*)/count(*)over()
?
2 сен 09, 13:09    [7607812]     Ответить | Цитировать Сообщить модератору
 Re: Подсчет процентов  [new]
Volodya
Member

Откуда:
Сообщений: 450
Еще раз спасибо!
2 сен 09, 13:12    [7607841]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить