【发布时间】:2019-08-07 12:43:49
【问题描述】:
我的数据库中有一个值列表。
k v
1 5000
1 100
1 120
1 3
2 5000
2 100
2 120
2 4
3 10000
3 120
3 100
3 4
4 10
4 120
4 110
4 5000
我想计算每个 k 的平均值,但我需要忽略每个 k 的 v 的最高和最低值。 (去除尖刺)
select avg(v) from table where v > min(v) and v < max(v) group by k
导致:
“组函数的无效使用”
我认为这是一项非常常见的任务,但我无法从文档中找到任何想法。
感谢您的建议。
【问题讨论】:
-
你的主键是什么?期望的结果应该是什么样的?
-
这不是你应该避免尖峰的方式
-
避免尖峰的方法是?
-
对于每个
k,您的样本显示v的两个值。如果你想忽略 v 的最小值和最大值,你将没有任何东西可以计算平均值。 (或者也许我不明白你在寻找什么,你可以展示一个预期的结果。) -
当然我在数据库中有更多的值。我已经更改了示例以使其清楚