値とグループ ID を持つテーブルがあります (簡略化された例)。中間の 3 つの値の各グループの平均を取得する必要があります。したがって、1、2、または 3 つの値がある場合、それは単なる平均です。しかし、値が 4 つある場合は最高値を除外し、5 つの値は最高値と最低値などを除外します。ある種のウィンドウ関数を考えていましたが、それが可能かどうかはわかりません。
http://www.sqlfiddle.com/#!11/af5e0/1
このデータの場合:
TEST_ID TEST_VALUE GROUP_ID
1 5 1
2 10 1
3 15 1
4 25 2
5 35 2
6 5 2
7 15 2
8 25 3
9 45 3
10 55 3
11 15 3
12 5 3
13 25 3
14 45 4
私は…したい
GROUP_ID AVG
1 10
2 15
3 21.6
4 45