在SQL中计算分组数据的LQ、UQ和IQR



我正在努力找出如何在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&lt的在小提琴

相关内容

  • 没有找到相关文章

最新更新