PERCENT_RANK
Gibt den relativen Rang einer Zeile in der Fensterpartition zurück, also den Anteil der Zeilen, die vor ihr stehen.
MySQL 8.4
PERCENT_RANK()Rückgabewert
Gleitkommazahl (DOUBLE) von 0 bis 1
Beispiele
Anteil nach Geburtsdatum
MySQL 8.4
SELECT member_name,
birthday,
RANK() OVER (
ORDER BY birthday
) AS birthday_rank,
PERCENT_RANK() OVER (
ORDER BY birthday
) AS birthday_percent_rank
FROM FamilyMembers;Position des Gehalts in der Abteilung
MySQL 8.4
SELECT department_id,
name,
salary,
ROUND(
PERCENT_RANK() OVER (
PARTITION BY department_id
ORDER BY salary
),
2
) AS salary_percent_rank
FROM employees;Details
Der Wert wird so berechnet: (RANK() - 1) / (Anzahl der Zeilen in der Partition - 1): Die erste Zeile bekommt 0, die letzte 1. Zeilen mit gleichen Werten in ORDER BY bekommen denselben Anteil, wie denselben Platz bei RANK. In einer Partition aus einer Zeile ist das Ergebnis 0, ohne ORDER BY bei jeder Zeile der Partition.