sql >> Base de Datos >  >> RDS >> Mysql

Seleccione el percentil n de MySQL

Esto le dará aproximadamente el percentil 40, devuelve la fila donde el 40% de las filas son menores. Ordena las filas según su distancia del percentil 40, ya que ninguna fila puede caer exactamente en el percentil 40.

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