请参阅Access Query中的整列

时间:2015-02-17 16:20:37

标签: ms-access ms-access-2010

我正在尝试使用引用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中使用类似的语法来获取整个列的百分位吗?

谢谢。

1 个答案:

答案 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

如果您想使用设计网格执行此操作:

对于第一个查询:

  • 在" Columns"区域(设计视图的下半部分),在每列的下方,有一个"顺序"组合,您可以选择" Ascending"或" Descending"
  • 您可以在查询的属性表中设置TOP值;在设计功能区中单击"属性表"按钮

一旦确定您的查询有效(即它选择了前25%的行),您就需要打开SQL视图,剪切生成的SELECT指令并写下:

select a.*
from (
-- Paste HERE the SELECT you've just cut
) as a

然后返回到设计网格,从列网格中删除*并将所需字段拖到设计视图中。点击设计功能区(大西格玛)中的总计按钮,以及刚刚拖动的字段下方的"总计"行选择" Max"