Допустим, я хочу вычислить большую медиану для таблицы для непрерывного столбца X. Можно использовать этот фрагмент кода:
PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY X)
OVER (PARTITION BY
?
)
AS grand_median
Часть OVER PARTITION BY обязательна. Почему, когда я хочу вычислить среднюю медиану? Что я могу сделать, пожалуйста? Спасибо!
PS: просто добавить некоторые искусственные данные - уже с ответом, вдохновленным @ Paweł Dyl
IF OBJECT_ID('tempdb..#Data') IS NOT NULL
DROP TABLE #Data
CREATE TABLE #Data
(
Number FLOAT,
)
INSERT INTO #Data (Number) VALUES (30);
INSERT INTO #Data (Number) VALUES (20);
INSERT INTO #Data (Number) VALUES (42);
INSERT INTO #Data (Number) VALUES (42);
INSERT INTO #Data (Number) VALUES (42);
INSERT INTO #Data (Number) VALUES (43);
INSERT INTO #Data (Number) VALUES (40);
SELECT * FROM #Data
SELECT DISTINCT PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY Number) OVER() FROM #Data
Некоторый код R, чтобы «проверить» это:
test <- c(30, 20, 42, 42, 42, 42, 40)
median(test)
Правильный ответ, конечно, 42.