Какой самый простой (и, надеюсь, не слишком медленный) способ вычисления медианы с MySQL? Я использовал AVG(x)
для поиска среднего значения, но мне трудно найти простой способ вычисления медианы. На данный момент я возвращаю все строки на PHP, делая сортировку, а затем выбираю среднюю строку, но, безусловно, должен быть простой способ сделать это в одном запросе MySQL.
Пример данных:
id | val
--------
1 4
2 7
3 2
4 2
5 9
6 8
7 3
Сортировка на val
дает 2 2 3 4 7 8 9
, поэтому медиана должна быть 4
, по сравнению с SELECT AVG(val)
, которая == 5
.