Sah aus, fand aber nur nach unten gewählte Fragen ohne gute Antworten.Prozentsatz eines Vorkommens in einer Spalte
Ich versuche, den Prozentsatz eines Auftretens in SQL Server zu finden. Eine vereinfachte Version von dem, was ich tue:
ID NAME FAVORITE_COLOR
------------------------------------
1 Jim Blue
2 Tom Green
3 Rob Yellow
4 Kev Blue
5 Kim Green
6 Bev Blue
kann ich zählen, wie viele von jedem, das ist einfach.
SELECT
favorite_color, COUNT(favorite_color) AS totals
FROM
color_prefs
GROUP BY
favorite_color
Das wird mir sagen, 3 Personen mögen Blue (usw.). Was ich nicht herausfinden kann ist, wie viel Prozent ich bekomme. Ich möchte wissen, dass 50% der Leute Blau mögen. Ich habe versucht, die unten, aber SQL hasste es total:
SELECT
favorite_color,
COUNT(favorite_color)/SUM(COUNT(favorite_color)) AS color_percent
FROM
color_prefs
GROUP BY
favorite_color
ich den Fehler:
Cannot perform an aggregate function on an expression containing an aggregate or a subquery.
Natürlich, ich könnte PHP Figur dieses für mich machen, aber ich es muß einen Weg geben dies in SQL ohne Unterabfragen zu tun, oder?
so wollen Sie eine Abfrage ohne Unterabfrage? – cableload
Am Ende ist es mir egal, aber idealerweise ohne. Die echte Abfrage ist ein bisschen komplexer, weil ich zwei Tabellen zusammenschließe und auf einen Datumsbereich beschränke ... Aber das ist so spezifisch für mich, dass es niemals jemand anderem mit dem gleichen Problem helfen würde. – jonlink