Ich versuche, den Perzentilwert einer Zeile zu erhalten.Erhalte Zeilenprozentsatz von der Reihenfolge nach Ranking
Zum Beispiel, wenn es 100 Zeilen gibt, und eine Zeile ist auf Position 50 basierend auf ORDER BY
, dann sollte es 50. Perzentil sein (denke ich). So etwas wie Zeilenindex basierend auf der Reihenfolge dividiert durch die Gesamtzahl der Zeilen.
Im Folgenden wird den Zeilenrang:
SET @rank=0;
SELECT id,code,@rank:[email protected]+1 AS rank
FROM images
ORDER BY
(select avg(value)
from ratings
where image_id = images.id and type = 1)
DESC
Wie würde ich das Perzentil für eine einzelne Zeile zu bekommen? (WHERE id = :id
)
Ich denke, es ist 'ASC' jetzt, wenn es Perzentil ist, aber vielen Dank! Das einzige Problem ist, dass es nicht funktioniert, wenn 'WHERE' verwendet wird, um eine einzelne Zeile zu erhalten. – frosty
Wenn Sie Ihre Ergebnisse in der Hauptauswahl filtern, müssen Sie die gleichen Filterkriterien innerhalb der' SELECT COUNT (*) 'Unterabfrage verwenden! –