请参阅 Access 查询中的整个列

Refer to entire column in Access Query

我正在尝试使用引用 Excel 对象模型的自定义函数来计算 Access 查询中整个数据列的百分位数。这是我的代码:

Public Function myPercentile25(x As Double) As Double
myPercentile25 = Excel.WorksheetFunction.Percentile(x, 0.25)
End Function

我使用以下方法将 myPercentile25 函数添加到设计视图中的查询列,其中 x 等于 AgedSalary:

25P: myPercentile25([AgedSalary])

我遇到的问题是查询似乎只对每一行而不是整列取百分位数。我更熟悉 Excel,我会将列称为 AgedSalary:AgedSalary。我可以在 Access 中使用类似的语法来获取整个列的百分位数吗?

谢谢。

当您需要百分位数时,在 Access 中使用 TOP 更容易:

select top 25 percent
    [agedSalary]
from [yourTable]
order by [agedSalary];

以上查询将 return 前 25% 的记录。如果您想要最高值(即第 25 个百分位数),您可以嵌套上述查询:

select max([agedSalary) as percentile
from (
    select top 25 percent [agedSalary] 
    from [yourTable] 
    order by [agedSalary])
) as a

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

第一个查询:

  • 在 "Columns" 区域(设计视图的下半部分),在每一列下方,有一个 "Order by" 组合,您可以在其中 select "Ascending" 或 "Descending"
  • 您可以在查询的 属性 sheet 中设置 TOP 值;在“设计”功能区中单击 "Property sheet" 按钮

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

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

然后 return 到设计网格,从列网格中删除 * 并将所需的字段拖到设计视图。单击设计功能区(那个大西格玛)中的总计按钮,然后在刚刚拖动的字段下方,在 "Total" 行 select "Max"