mysql去掉两个最高分_去掉一个最高分,去掉一个最低分求平均值(trimmean)的函数
时间: 2023-12-22 08:04:04 浏览: 71
你可以在MySQL中创建一个自定义函数来计算trimmean。以下是一个使用存储过程和游标的示例实现:
```
DELIMITER //
CREATE FUNCTION trimmean()
RETURNS DECIMAL(10,2)
BEGIN
DECLARE total DECIMAL(10,2);
DECLARE count INT;
DECLARE done INT DEFAULT FALSE;
DECLARE cur CURSOR FOR SELECT score FROM scores ORDER BY score DESC;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
SET total = 0;
SET count = 0;
OPEN cur;
read_loop: LOOP
FETCH cur INTO score;
IF done THEN
LEAVE read_loop;
END IF;
SET count = count + 1;
IF count <= 1 OR count > (SELECT COUNT(*) FROM scores) - 2 THEN
CONTINUE;
END IF;
SET total = total + score;
END LOOP;
CLOSE cur;
RETURN total / (SELECT COUNT(*) FROM scores) - 3);
END//
DELIMITER ;
```
这个函数将返回去掉两个最高分和一个最低分后的平均分。
要使用这个函数,只需要在MySQL中调用它:
```
SELECT trimmean() as result;
```
注意,这个函数假设表格中至少有5个记录,否则会返回NULL。你可以根据需要自己修改。
阅读全文