首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Esper:取每个id的最后一个值,取除最极端值以外的所有值的平均值

Esper:取每个id的最后一个值,取除最极端值以外的所有值的平均值
EN

Stack Overflow用户
提问于 2020-09-17 21:09:37
回答 1查看 36关注 0票数 0

我有5个温度传感器。我想计算平均温度4-不包括最极端的值(最高或最低)。

首先:std: will ( id )会为每个id1-5创建一个最新温度读数的窗口吗?

代码语言:javascript
运行
复制
select
    avg(tempEvent.temp) as meantemp
from
    Event(id in (1, 2, 3, 4, 5)).std:unique(id) as tempEvent

其次:如何更改select语句(如有必要,可以使用表达式),使其只计算四个值的平均值(不包括最极端的值)?

背景是,我想知道每个温度与平均值的偏差,但我不希望平均值包含异常id。否则,所有的温度看起来都会偏离平均值,但实际上只有一个是偏离平均值的。

EN

回答 1

Stack Overflow用户

发布于 2020-09-18 05:19:25

找到中间四个值的平均值非常简单,尽管不像您的解决方案那么优雅。下面的代码适用于任意数量的临时工。

代码语言:javascript
运行
复制
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)
 ;

至于你的第二个问题,我不太明白。是否要四个中间值中与这四个值的平均值绝对偏差最大的值

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63938756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档