我需要在Access中执行TREAMMEAN,它没有此功能。
在一张桌子上,我有很多员工,每个人都有很多记录。我需要为每个员工分别设置TRIMMEAN值。
以下查询对所有记录执行前10 %的查询:
qry_data_TOP10_ASC
qry_data_TOP10_DESC
unionqry_TOP10_ASCandDESC
qry_data_ALL_minus_union_qry在那之后,我可以使用Avg (平均)。
但我不知道如何为每个员工做这件事。
可视化:

注意:这个问题是为了简化问题而编辑的。
发布于 2018-03-27 17:33:39
这将为您提供您想要的,这两个子查询应该关联每个员工的前10位(上升和下降)。然后,这两个NOT应该从Table1记录中删除这些记录,然后将员工分组并平均得分。
SELECT Table1.Employee, AVG(Table1.Score) AS AvgScore
FROM Table1
WHERE ID NOT IN
(
SELECT TOP 10 ID
FROM Table1 a
WHERE a.Employee = Table1.Employee
ORDER BY Score ASC, Employee, ID
)
AND ID NOT IN
(
SELECT TOP 10 ID
FROM Table1 b
WHERE b.Employee = Table1.Employee
ORDER BY Score DESC, Employee, ID
)
GROUP BY Table1.Employee;发布于 2018-04-10 18:30:48
您实际上并没有在伪代码中给出有关数据字段的信息,但是使用包含基本字段信息的示例,我可以建议如下所述的那样工作
它假定field1是您唯一的记录ID,但是您没有提到哪些字段是键。
SELECT AVG(qry_data.field2) FROM qry_data WHERE qry_data.field1 NOT IN
(SELECT * FROM
(SELECT TOP 10 PERCENT qry_data.field1, qry_data.field2
FROM qry_data
ORDER BY qry_data.field2 ASC)
UNION
(SELECT TOP 10 PERCENT qry_data.field1, qry_data.field2
FROM qry_data
ORDER BY qry_data.field2 DESC)
)https://stackoverflow.com/questions/49517776
复制相似问题