2012-01-04 2 views
1

Интересно, как сделать это с помощью переменной:TSQL помощь высчитывает процент

SELECT Count(distinct UserIP) 
FROM VisitorIP 
G0 

SELECT Country, Count(distinct UserIP) Visitors, Count(distinct UserIP) * 100/2865 Pct 
FROM VisitorIP group by country order by Visitors desc 

Теперь я хочу, чтобы заменить 2865 на счета (отчетливым UserIP) выше.

Существует сообщение: В ИТ лучше, кто знает, чем 10, которые ищут!

Любые подсказки приветствуются ... С Новым годом всем выродкам.

ответ

3

Использование переменной:

DECLARE @userip_count int 

SELECT @userip_count = Count(distinct UserIP) 
FROM VisitorIP 

SELECT Country, Count(distinct UserIP) Visitors, Count(distinct UserIP) * 100/@userip_count Pct 
FROM VisitorIP group by country order by Visitors desc 
GO 

Перемещение GO имеет важное значение здесь, для того, чтобы переменной оставаться в объеме для использования во втором запросе.

+0

Работает как очарование с минимальными изменениями, спасибо! –

+0

Рад помочь. – philofinfinitejest

0
SELECT Country, 
Count(distinct UserIP) Visitors, 
round(Count(distinct UserIP)/
       (SELECT Count(distinct UserIP) 
       FROM VisitorIP) * 100,2) Pct 
FROM VisitorIP 
group by country 
order by Visitors desc 
Смежные вопросы