任務一:求下方的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;