Labels

Wednesday, April 3, 2013

PERCENTILE_DISC

/*
PERCENTILE_DISC() function will takes a parameter, which indicates the offset and it should be between 0 and 1.

Suppose, in a group of values 10,20,30,40,50,60 PERCENTILE_DISC() function will returns any value between 10 and 50.
This value will be calculated based on interpolation, at given offset position.
*/

DECLARE @T TABLE
(
GroupID INT,
Number INT
)

INSERT INTO @T (GroupID,Number)
VALUES (1,10),(1,20),(1,30),(1,50),(1,60)

SELECT GroupID,Number,
            PERCENTILE_DISC(0.4) WITHIN GROUP (ORDER BY Number)
            OVER (PARTITION BY GroupID) AS [InterpolatedAt0.4],
                PERCENTILE_DISC(0.8) WITHIN GROUP (ORDER BY Number)
                OVER (PARTITION BY GroupID) AS [InterpolatedAt0.8]
FROM @T

No comments:

Post a Comment