2016-06-26 6 views
0

Ich möchte die Dezimalstellen auf 4 ändern, aber ich kann es nicht herausfinden, Hilfe!SQL-Zählung mit dezimaler prozentualer Aufschlüsselung - wie begrenzen Sie auf 4 Dezimalstellen?

--query

select CASE v2.[ie version] 
     When '11' Then 'Internet Explorer 11' 
     When '9' Then 'Internet Explorer 9' 
     When '8' Then 'Internet Explorer 8' 
     Else [IE Version] End [IE Version], 
COUNT(distinct v1.guid) 'Total Count', COUNT(*) *100.00/SUM(COUNT(*)) over()'Total Percentage' from vcomputer v1 
inner join vIEVersions v2 on v1.guid = v2.guid where v1.ismanaged = '1' 
and v2.[IE Version] is not Null and v2.[IE Version] not in ('Unknown', '7', '10') 
group by v2.[IE Version] order by 1 desc 

--output

IE Version    Total Count Total Percentage 
Internet Explorer 9  180   1.7349397590361 
Internet Explorer 8  531   5.1180722891566 
Internet Explorer 11  9664   93.1469879518072 
+0

Mögliches Duplikat von [Formatnummer als Prozent in MS SQL Server] (http://stackoverflow.com/questions/3 0089490/Format-Nummer-als-Prozent-in-ms-SQL-Server) – TZHX

Antwort

0

Ich denke, dass zuerst Sie zum ersten CREATE TABLE VIEW des Dezimalsystems prozentuale Aufteilung haben und rufen dann die Rundenfunktion die Werte der Summe wie dieses Beispiel-Code:

SELECT ROUND(column_name,decimals) FROM table_name;

Hoffe es hilft.

0

CAST dezimal sollte genug sein:

CAST(COUNT(*) *100.00/SUM(COUNT(*)) over() as decimal(12,4)) 
0

versuchen, dies zum Beispiel

declare @i int = 23

wählen cast (@ i 100.00/3 als Dezimalzahl * (10,4))