我正在尝试使用引用Excel对象模型的自定义函数计算Access Query中整列数据的百分位数。这是我的代码:
Public Function myPercentile25(x As Double) As Double
myPercentile25 = Excel.WorksheetFunction.Percentile(x, 0.25)
End Function
我已将myPercentile25函数添加到Design View中的Query列,其中x等于AgedSalary,使用以下内容:
25P: myPercentile25([AgedSalary])
我遇到的问题是查询似乎只取每个行的百分位而不是整列。我更熟悉Excel,我将列引用为AgedSalary:AgedSalary。我可以在Access中使用类似的语法来获取整个列的百分位吗?
谢谢。
答案 0 :(得分:2)
如果您想要百分位数,可以更轻松地使用Access中的TOP
:
select top 25 percent
[agedSalary]
from [yourTable]
order by [agedSalary];
上述查询将返回前25%的记录。如果您想要最高值(即25百分位数),您可以嵌套上述查询:
select max([agedSalary) as percentile
from (
select top 25 percent [agedSalary]
from [yourTable]
order by [agedSalary])
) as a
如果您想使用设计网格执行此操作:
对于第一个查询:
一旦确定您的查询有效(即它选择了前25%的行),您就需要打开SQL视图,剪切生成的SELECT
指令并写下:
select a.*
from (
-- Paste HERE the SELECT you've just cut
) as a
然后返回到设计网格,从列网格中删除*
并将所需字段拖到设计视图中。点击设计功能区(大西格玛)中的总计按钮,以及刚刚拖动的字段下方的"总计"行选择" Max"