17 Stimmen

Wie berechne ich Prozentsätze mit Dezimalstellen in SQL?

Wie kann ich dies in SQL in eine Dezimalzahl umwandeln? Unten ist die Gleichung und ich erhalte die Antwort als 78 (ganze Zahl), aber die wirkliche Antwort ist 78,6 (mit einer Dezimalstelle), so dass ich dies anzeigen muss, da sonst der Bericht nicht bis zu 100 % zusammenzählen wird

(100 * [TotalVisit1]/[TotalVisits]) AS Visit1percent

26voto

LeppyR64 Punkte 5010

Versuchen Sie dies:

(100.0 * [TotalVisit1]/[TotalVisits]) AS Visit1percent

1 Stimmen

Stellen Sie sicher, dass Sie in Ihrer Präsentationsebene eine Formatierung hinzufügen, um den Wert auf 1 oder 2 Dezimalstellen abzurunden. Andernfalls werden Sie wahrscheinlich auf Dinge wie 33,33333... stoßen.

11voto

Shawn Punkte 18777
convert(decimal(5,2),(100 * convert(float,[TotalVisit1])/convert(float,[TotalVisits]))) AS Visit1percent

Hässlich, aber es funktioniert.

0 Stimmen

Vielen Dank, das ist die eine ive gegangen, wie es die Zahl aufgerundet, die anderen Antworten alle funktionierten als gut, obwohl danke allot jeder :)

2 Stimmen

Ich habe festgestellt, dass es besser ist, in Dezimalzahlen als in Fließkommazahlen zu konvertieren. Bestimmte Divisionen funktionieren besser mit Dezimalzahlen, zumindest auf Microsoft SQL Server: SELECT 5555/CAST(1000 AS float), CAST(5555/CAST(1000 AS float) AS numeric(5, 2)), 5555/CAST(1000 AS decimal), CAST(5555/CAST(1000 AS decimal) AS Numeric(5, 2))

2voto

Ali Punkte 21
CAST(ROUND([TotalVisit1]*100.0/[TotalVisits],2)as decimal(5,2)) as Percentage

Nicht hässlich und arbeiten besser und schnell, genießen Sie es!

2voto

Goku Punkte 167

Das funktioniert für mich perfekt:

CAST((1.0 * SUM(ColumnA) /COUNT(ColumnB)) as decimal(5,2))

Ich hoffe, es hilft jemandem da draußen in der Welt.

1voto

Ólafur Waage Punkte 66497

Zumindest in MySQL (wenn es hilft), wenn Sie Float-Zahlen verwenden möchten, mussten Sie ein Feld vom Typ float verwenden, nicht die normalen int-Felder.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X