2016-04-10 6 views
2

Ich habe eine Tabelle mit zwei Spalten, die Anzahl der maximalen Anzahl der Plätze (Kapazität) und Anzahl der verfügbaren Plätze (availablePlaces)berechnen Prozentsatz zwischen zwei Spalten in SQL-Abfrage als eine andere Spalte

ich die availablePlaces berechnet werden soll als ein Prozentsatz der Kapazität.

availablePlaces capacity 
1     20 
5     18 
4     15 

gewünschte Ergebnis:

availablePlaces capacity Percent 
1     20  5.0 
5     18  27.8 
4     15  26.7 

Irgendwelche Ideen einer SELECT SQL-Abfrage, die mir dies tun können?

Danke!

Antwort

9

Try this:

SELECT availablePlaces, capacity, 
     ROUND(availablePlaces * 100.0/capacity, 1) AS Percent 
FROM mytable 

Sie haben von 100,0 statt 100 zu multiplizieren, um Integer-Division zu vermeiden. Außerdem müssen Sie ROUND verwenden, um auf die erste Dezimalstelle zu runden.

Demo here

+0

Perfekt funktioniert das! Danke :) – missdevops

+0

@missdevops Ich bin froh, dass ich helfen konnte. Bitte markieren Sie diese oder eine andere Antwort als akzeptiert, wenn sie Ihnen bei der Lösung Ihres Problems geholfen hat. –

+0

Perfekt, genau was ich brauchte! Hatte das ursprünglich ohne ROUND() und ohne Division durch 100.0 gemacht und bekam nur Nullen und Einsen. Sehr geschätzt. :-) – allardbrain

0

Die folgende SQL-Abfrage wird dies für Sie tun:

SELECT availablePlaces, capacity, (availablePlaces/capacity) as Percent 
from table_name;