2012-01-04 22 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 

は、今私は、カウント(個別のUserIP)上記により、2865を交換したいです。

言い分があります:ITでは、10人を知っている方が良い人!

何か手がかりを歓迎します... そこにすべてのオタクにハッピーニューイヤー。

変数を使用して

答えて

3

GOを移動

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 

は、変数が2番目のクエリで使用するためのスコープ内に残るようにするために、ここでは必要不可欠です。

+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