у меня есть следующие таблицы t1:Расчет медианные значения в энцефалопатией
key value
1 38.76
1 41.19
1 42.22
2 29.35182
2 28.32192
3 33.66
3 33.47
3 33.35
3 33.47
3 33.11
3 32.98
3 32.5
Я хочу, чтобы вычислить медиану для каждой группы ключей. Согласно documentation, функция percentile_approx должна работать для этого. Средние значения для каждой группы:
1 41.19
2 28.83
3 33.35
Однако функция percentile_approx возвращает эта:
1 39.974999999999994
2 28.32192
3 33.23.0000000000004
которые явно не являются средними значениями.
Это был запрос я побежал:
select key, percentile_approx(value, 0.5, 10000) as median
from t1
group by key
Это, кажется, не принимая во внимание одно значение для каждой группы, что приводит к неправильной медианы. Заказ не влияет на результат. Есть идеи?
Как это относится к сценарию, когда существует четное число значений? Также почему вы группируете ключ в первой части, когда вы не используете какие-либо агрегированные функции. @Nithiyanandhan. – Danzo
. Я отредактировал свой ответ. Первая часть будет заказывать значения на основе ключа и находить номер средней строки, вторая часть найдет номер строки для каждой клавиши. Присоединившись к первому результату и второму результату, мы получим медиану для ключа. Это также будет сценарий с четным числом. – anand