将Percentile_cont / disc(中位数)转换为标量函数

时间:2019-02-27 16:36:06

标签: sql sql-server

自从编辑以来,我们一直在尝试重新创建轮子。

以下内容非常适合确定中位数。现在,我们将如何转换为函数,以便我们可以调用位数(列),而不必每次都执行以下操作。下面是窍门:

   select percentile_cont(0.5) within group (order by n) over (PARTITION BY [column1]),

   from t;

AHH-我明白了。是否可以仅在column1 = a,b,c的地方计算中位数的位置进行分组,因此输出为

 A median of values with A identifier
 B median of values with B identifier
 C median of values with C identifier

1 个答案:

答案 0 :(得分:3)

您应该只使用percentile_cont()percentile_disc()窗口功能:

select percentile_cont(0.5) within group (order by n) over (),
       percentile_disc(0.5) within group (order by n) over ()      
from t;

不需要重新发明轮子。