我正在努力找出如何在SQL中获得分组数据的上/下四分位数和IQR。假设我有一些类似于下面的数据:
ID Data
1 21
1 37
1 86
1 1
1 34
1 77
2 5
2 15
2 29
3 12
3 76
3 54
3 10
我希望能够从每个ID的Data列中获得LQ, UQ和IQR,如下所示:
ID LQ UQ IQR
1 24.25 67.0 42.75
2 10.00 22.0 12.00
3 11.50 59.5 48.00
到目前为止,我所发现的一切都没有看到分组位。我知道PERCENTILE_COUNT可以用来找到每个值落在哪个四分位数,但我很难把它们放在一起
确实,您可以使用PERCENTILE_CONT
来获取此信息。然后进行简单的分组
SELECT
ID,
LQ,
UQ,
IQR = UQ - LQ
FROM (
SELECT
ID,
LQ = PERCENTILE_CONT(0.25) WITHIN GROUP (ORDER BY Data) OVER (PARTITION BY ID),
UQ = PERCENTILE_CONT(0.75) WITHIN GROUP (ORDER BY Data) OVER (PARTITION BY ID)
FROM YourTable t
) t
GROUP BY ID, LQ, UQ;
,db<的在小提琴