Как найти N-й процентиль с SQLite? - PullRequest
12 голосов
/ 14 июля 2009

Я бы хотел найти Nth процентиль .

например: таблица: htwt; столбцы: имя, пол, рост, вес

результат:

| gender | 90% height | 90% weight |
| male   |        190 |         90 |
| female |        180 |         80 |

1 Ответ

15 голосов
/ 14 июля 2009

sqlite не силен в аналитической обработке, но если ваши данные не очень велики, вы можете попробовать эмулировать процентиль с ORDER BY, LIMIT 1 и вычисленным OFFSET. Обратите внимание, что OFFSET начинается с нуля, поэтому вам нужно настроить его на единицу.

SELECT
  height AS 'male 90% height'
FROM table
WHERE gender='male'
ORDER BY height ASC
LIMIT 1
OFFSET (SELECT
         COUNT(*)
        FROM table
        WHERE gender='male') * 9 / 10 - 1;
...