您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

SQL Server 2008 R2的百分比汇总

SQL Server 2008 R2的百分比汇总

我喜欢使用row_number()/rank()和window函数直接进行这些计算。内置函数很有用,但实际上并没有节省太多精力:

SELECT id,
       MIN(CASE WHEN seqnum >= 0.9 * cnt THEN x END) as percentile_90
FROM (select t.*,
             row_number() over (partition by id order by x) as seqnum,
             count(*) over (partition by id) as cnt
      from my_table t
     ) t
GROUP BY id
ORDER BY id;

这将采用第90个百分点或更高的第一个值。可以做连续版本的版本有多种变体(取最大值小于或等于,最小的值大于并进行插值)。

SQLServer 2022/1/1 18:52:38 有359人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶