Cela vous donnera approximativement le 40e centile, il renvoie la ligne où 40% des lignes sont inférieures à celle-ci. Il trie les lignes en fonction de leur distance par rapport au 40e centile, car aucune ligne ne peut tomber exactement sur le 40e centile.
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