我有5个温度传感器。我想计算平均温度4-不包括最极端的值(最高或最低)。
首先:std: will ( id )会为每个id1-5创建一个最新温度读数的窗口吗?
select
avg(tempEvent.temp) as meantemp
from
Event(id in (1, 2, 3, 4, 5)).std:unique(id) as tempEvent其次:如何更改select语句(如有必要,可以使用表达式),使其只计算四个值的平均值(不包括最极端的值)?
背景是,我想知道每个温度与平均值的偏差,但我不希望平均值包含异常id。否则,所有的温度看起来都会偏离平均值,但实际上只有一个是偏离平均值的。
发布于 2020-09-18 05:19:25
找到中间四个值的平均值非常简单,尽管不像您的解决方案那么优雅。下面的代码适用于任意数量的临时工。
SELECT
AVG(temp) AS meantemp
FROM (
SELECT
temp,
COUNT(temp) AS c,
RANK () OVER (PARTITION BY temp ORDER BY temp) AS r
FROM
[table]
)
WHERE
r > 1
AND r < (c-1)
;至于你的第二个问题,我不太明白。是否要四个中间值中与这四个值的平均值绝对偏差最大的值
https://stackoverflow.com/questions/63938756
复制相似问题