任务一:求下方的Num列的中值:
参考代码:
use Test
go
SELECT DISTINCTPERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY Num) over()AS MedianSalary
FROM MedianTest;
任务二: 下方表中,每个选手有多个评委打分,求每个选手的评委打分中值。
参考代码:
use Test
go
-- 创建表
CREATE TABLE ContestScores (Id INT PRIMARY KEY,PlayerId INT,JudgeId INT,Score DECIMAL(5,2)
);-- 插入示例数据
INSERT INTO ContestScores VALUES
(1, 101, 1, 8.5),
(2, 101, 2, 9.0),
(3, 101, 3, 7.5),
(4, 101, 4, 8.0),
(5, 101, 5, 9.5),
(6, 102, 1, 7.0),
(7, 102, 2, 7.5),
(8, 102, 3, 8.0),
(9, 102, 4, 8.5),
(10, 103, 1, 9.0),
(11, 103, 2, 9.5),
(12, 103, 3, 8.5),
(13, 103, 4, 9.0),
(14, 103, 5, 8.0);
SELECT DISTINCTPlayerId,PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY Score) OVER (PARTITION BY PlayerId) AS MedianScore
FROM ContestScores;