Существует ли функция SQL, которая вычисляет значение ИНТЕРПОЛИРОВАННОГО МЕДИАНА для двух связанных массивов?
Например, учитывая набор тестовых оценок, количество студентов учитывается, как показано ниже:
Scores | Student_Count | Cum_Student_Count
--------+-----------------+------------------
18 | 27 | 27
19 | 20 | 47
20 | 15 | 62
21 | 20 | 82
22 | 66 | 148
25 | 112 | 260
30 | 111 | 371
35 | 107 | 478
40 | 92 | 570
45 | 101 | 671
50 | 104 | 775
55 | 105 | 880
60 | 94 | 974
65 | 76 | 1050
70 | 64 | 1114
75 | 86 | 1200
Значение Student_Count складывается до 1200. Средний балл (подлежит вычислению) - это интерполированное значение, где Cum_Student_Count равен 600 (idpoint Cum_Student_Count). Значение находится между 45 и 50 и вычисляется следующим образом:
- Рассчитать (600 - 570) / 101 = 0,297 , разницу между средней точкой (600) и ближайшей кумулятивное значение меньше или равно средней точке.
- Чтобы вычислить медиану, 46.49 , мы интерполируем 0.297 между 45 и 50, следующие два значения Оценка после 40-балльный уровень и добавьте значение к следующему более высокому баллу: 45 + 0,297 * (50-45)