SQL Division durch Zwei Count()
Ich habe die folgende Abfrage, die versucht, herauszufinden, den Prozentsatz eines bestimmten Produktes im Vergleich zu der Gesamtzahl der Produkte. IE: [Produkt Anzahl] /[Gesamtzahl Produkten] = Prozent
;WITH totalCount AS(
SELECT
CAST(COUNT(id) as Integer)as totalCount
FROM TABLE_NAME
)
SELECT
((CAST(COUNT(DISTINCT id) as Integer)/(SELECT * FROM totalCount))*100) as 'Percent'
FROM TABLE_NAME
Jedoch der Prozent-Spalte gibt immer "0", wenn nur ein Datensatz vorhanden ist. Darüber hinaus ist es ein Weg, um fügen Sie die totalCount und Wählen Sie Abfrage in ein?
Grundsätzlich, wie tun, Sie teilen zwei Count () - Felder?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Besetzung Ihrer Gesamtzahl als Zahl neben integer (DEZIMAL?) - die Mathematik rundet.
Cast als etwas mit Nachkommastellen, nicht Integer. Eine float-oder real.
Sollte das nicht sein:
Beachten Sie die SELECT COUNT(*). Auch, sollten Sie sich vermehren, bevor Sie sich teilen, ansonsten wirst du immer das bekommen, null