Я думаю, что это будет самое простое решение:
SELECT TOP N PERCENT FROM TheTable ORDER BY TheScore DESC
Где N = (100 - желаемый процентиль). Поэтому, если вы хотите, чтобы все строки в 90-м процентиле были выбраны, верхние 10%.
Я не уверен, что вы подразумеваете под "желательно в одной записи". Вы имеете в виду подсчитать, в какой процентиль попадет данная оценка для отдельной записи? например хотите ли вы иметь возможность делать заявления типа «ваш счет 83, что ставит вас в 91-й процентиль».
РЕДАКТИРОВАТЬ: ОК, я подумал еще немного о вашем вопросе и придумал эту интерпретацию. Вы спрашиваете, как рассчитать показатель отсечки для определенного процентиля? например примерно так: чтобы попасть в 90-й процентиль, у вас должно быть больше 78.
Если это так, этот запрос работает. Мне не нравятся подзапросы, поэтому, в зависимости от того, для чего это было, я, вероятно, попытался бы найти более элегантное решение. Однако он возвращает одну запись с одним счетом.
-- Find the minimum score for all scores in the 90th percentile
SELECT Min(subq.TheScore) FROM
(SELECT TOP 10 PERCENT TheScore FROM TheTable
ORDER BY TheScore DESC) AS subq