Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wählen Sie das n-te Perzentil aus MySQL aus

Dadurch erhalten Sie ungefähr das 40. Perzentil, es gibt die Zeile zurück, in der 40 % der Zeilen kleiner sind. Es sortiert Zeilen danach, wie weit sie vom 40. Perzentil entfernt sind, da keine Zeile genau auf das 40. Perzentil fallen darf.

SELECT m1.field, m1.otherfield, count(m2.field) 
  FROM mydata m1 INNER JOIN mydata m2 ON m2.field<m1.field
GROUP BY 
   m1.field,m1.otherfield
ORDER BY 
   ABS(0.4-(count(m2.field)/(select count(*) from mydata)))
LIMIT 1