【发布时间】:2013-05-24 10:33:51
【问题描述】:
所以这应该相当简单,而且我敢肯定我缺少一个令人尴尬的简单解决方案,但这里是:
我想根据两个数值变量创建一个数字网格。
更具体地说,我想选择每个变量的第 5 个和第 95 个百分位数,然后将这两个值之间的差异分成 100 个部分,然后按这些部分进行分组。
所以基本上我需要的是伪代码
(5th percentile)+(95th percentile-5th percentile)/100*[all numbers from 0 to 100]
我可以通过以下查询选出第 5 个和第 95 个百分位数:
SELECT Min(subq.lat) as latitude, percentile FROM
(SELECT round(latitude,2) as lat, ntile(100) OVER (order by latitude desc) as
'percentile' FROM table ORDER BY latitude DESC) AS subq
where percentile in (5,95)
group by 2
我也可以创建一个从 0 到 100 的数字列表。
但是如何将这两者结合起来有点超出我的能力。
我们将不胜感激。
【问题讨论】:
-
所以基本上你想创建一条从第 5 个 %ile 值到第 95 个的平滑线,它们之间有 100 步?您是否真的想要 90 步(这样每一步都可以代表一个 %ile 点)?
-
不,肯定是 100。基本上,5 到 95 是一个置信区间,我想将它分成 100 个部分。否则我可以从上面的 sql 中取出 where 子句并完成。
标签: sql