如何使用SQL语句求分位值(10分位、25分位、50分位、75分位、90分位)

枫V舞 2016-02-05 12:04:59
如何使用SQL语句求分位值(10分位、25分位、50分位、75分位、90分位)
如下图所示,直接用SQL语句如何实现呢?
请教高手帮忙给个思路。


...全文
14482 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_34881882 2017-03-22
  • 打赏
  • 举报
回复
create table #PERCENTILE_test ( id int, col1 dec(12,4) ) insert into #PERCENTILE_test select 1,12 union all select 1,18 union all select 1,23 union all select 1,25 union all select 1,36 union all select 1,42 union all select 1,67 union all select 1,74 union all select 1,80 union all select 1,90 union all select 1,114 union all select 1,135 union all select 1,144 union all select 1,176 SELECT SUM(MIN_Data) AS MIN_Data , SUM([percont0.1]) AS [percont0.1] , SUM([percont0.25]) AS [percont0.25] , SUM([percont0.5]) AS [percont0.5] , SUM([percont0.75]) AS [percont0.75] , SUM([percont0.9]) AS [percont0.9] , MAX(Max_Data) AS Max_Data FROM ( SELECT MIN(col1) AS MIN_Data , 0 AS [percont0.1] , 0 AS [percont0.25] , 0 AS [percont0.5] , 0 AS [percont0.75] , 0 AS [percont0.9] , MAX(col1) AS Max_Data FROM #PERCENTILE_test (NOLOCK) UNION ALL SELECT DISTINCT 0 AS MIN_Data , PERCENTILE_cont (0.1) WITHIN GROUP (ORDER BY col1) over(partition by id) as percont0_5 , PERCENTILE_cont (0.25) WITHIN GROUP (ORDER BY col1) over(partition by id) as percont0_5 , PERCENTILE_cont (0.5) WITHIN GROUP (ORDER BY col1) over(partition by id) as percont0_5 , PERCENTILE_cont (0.75) WITHIN GROUP (ORDER BY col1) over(partition by id) as percont0_5 , PERCENTILE_cont (0.9) WITHIN GROUP (ORDER BY col1) over(partition by id) as percont0_5 , 0 Max_Data FROM #PERCENTILE_test (NOLOCK) ) T
mcuman 2016-03-18
  • 打赏
  • 举报
回复
楼主可以试试case语句
枫V舞 2016-02-05
  • 打赏
  • 举报
回复

如上图所示

按岗位序列分组可以求年龄的最大、最小、平均,但是分位数怎么求呢?求教。。。。。。

SELECT 岗位序列,MAX(年龄),MIN(年龄),AGV(年龄) FROM 表名 GROUP BY 岗位序列
ACMAIN_CHM 2016-02-05
  • 打赏
  • 举报
回复
你的表结构是什么?数据是什么样?

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧