![](/img/trans.png)
[英]How to calculate moving median with percentile_disc() and window?
[英]SQL Server: PERCENTILE_DISC for column median without partitioning
我正在尝试在表中的值列上运行PERCENTILE_DISC
以获取其中位数。 我注意到该函数有一个强制性的分区子句,我想知道是否有一种方法不使用它。 我只对整个列的中位数感兴趣,而对其他类别的值的子集不感兴趣。 我什至尝试使用此技巧来获取my_value
的中位数:
SELECT
PERCENTILE_DISC (0.5)
WITHIN GROUP (ORDER BY my_value)
OVER (PARTITION BY NULL)
FROM
my_table
但是,我得到的矢量是我桌子长度的1s。 有没有一种方法可以只获得列中位数而不进行分区?
正常方法是使用:
SELECT PERCENTILE_DISC(0.5) WITHIN GROUP (ORDER BY my_value) OVER ()
FROM my_table;
如果只需要一行:
SELECT DISTINCT PERCENTILE_DISC(0.5) WITHIN GROUP (ORDER BY my_value) OVER ()
FROM my_table;
不幸的是,SQL Server不提供此功能作为聚合功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.