SQL为col1的每个不同值找到col2的中位数

时间:2016-07-12 17:41:41

标签: sql sql-server tsql median

我试图计算第1列中每个不同值的时间中位数,这会存储某种类型的ID。第二列以毫秒为单位存储时间。我想计算每个id的记录中位数。我有这个:

Declare @Median varchar(max)
SELECT @Median = PERCENTILE_CONT(0.5)
WITHIN GROUP (ORDER BY ExecTime) OVER () 
FROM 
(
    SELECT ExecTime
    FROM logs
    WHERE Message Like '<%'
) AS median 
SELECT @Median as Median --, Name

计算col2中所有值的中位数(我删除了此时不相关的额外条件)。我认为距离解决方案只有一步之遥,但我无法抓住它。

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找partition by条款:

SELECT DISTINCT column1,
       PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY ExecTime) OVER (PARTITION BY column1) as median 
FROM logs l
WHERE l.Message Like '<%';
相关问题