Hom*_*lli 5 mysql sql aggregate-functions
我想编写一个函数来计算MySQL中的简单修剪平均值计算.该函数(显然)将是一个聚合函数.我是新手在MySQL中编写函数等,所以可以提供一些帮助.
修剪均值的算法如下(伪代码):
CREATE AGGREGATE FUNCTION trimmed_mean(elements DOUBLE[], trim_size INTEGER)
RETURNS DOUBLE
BEGIN
-- determine number of elements
-- ensure that number of elements is greater than 2 * trim_size else return error
-- order elements in ASC order
-- chop off smallest trim_size elements and largest trim_size elements
-- calculate arithmetic average of the remaining elements
-- return arithmetic average
END
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助如何正确编写上面的函数,用于MySQL?
这不是一个小任务,你需要用 c/c++ 编写它......
MySQL 本身的一个选项是编写一个视图或标量函数,以您想要的方式聚合数据,但来自特定的表。这显然将功能限制在单个源表上,这可能并不理想。
解决这个问题的方法可能是有一个专门用于此功能的表......
(或者类似的东西)
这排除了 GROUP BY 变化,除非您使用动态 sql 或将参数传递给函数以实现特定的分组模式。
一切都不太理想,抱歉。