( MySQL) -
:
CREATE TABLE test_table (
id INT(11) NOT NULL AUTO_INCREMENT,
value INT(11) DEFAULT NULL,
PRIMARY KEY (id)
);
INSERT INTO test_table(value) VALUES
(10), (2), (3), (5), (4), (7), (1), (9), (3), (5), (9);
avg ( ):
SET @trim_size = 3;
SELECT AVG(value) avg FROM (
SELECT value, @pos:=@pos + 1 pos FROM (SELECT * FROM test_table ORDER BY value) t1, (SELECT @pos:=0) t2
) t
WHERE pos > @trim_size AND pos <= @pos - @trim_size;
+
| avg |
+
| 4.8000 |
+