gpt4 book ai didi

mysql - 如果mysql中有超过10%的结果超过X

转载 作者:行者123 更新时间:2023-11-29 20:16:25 25 4
gpt4 key购买 nike

我有一个数据库表,其中列出了许多建筑物中许多位置的温度读数。我需要一个查询,如果在某个日期获取的建筑物中超过 10% 的读数大于 X

我不是在寻找平均值。如果某个日期在建筑物中进行了 100 次测量,其中 10 次超过 X(例如 80 度),则创建一个标志。

表格布局如下

 Building # location #    date     temperature
| 123 | 555 |2016-04-08 | 68.5 |
| 123 | 556 |2016-04-08 | 70.2 |
| 123 | 557 |2016-04-08 | 65.4 |
| 888 | 999 |2013-03 22 | 80.4 |

通常,一座建筑物会有超过 100 个读数。表中有数百个建筑物/日期条目

这可以通过单个 mysql 查询来完成吗?您可以与我分享该查询吗?

<小时/>

我显然没有把我的问题说清楚。

我正在寻找的结果是一个 True 或 False。

如果建筑物/日期组合的结果中有超过 10% 超过 X(例如 80%),则显示 true,或某些标志等于 true。

已知字段为建筑和日期。该位置不相关,可以忽略。因此,考虑到建筑物 (123) 和日期 (2016-04-08) 的输入,表中超过 10% 的条目的建筑物编号和日期大于 X(例如 80)。唯一要测试的数据是该建筑物和日期的数据。所以查询将以:

结束
where building_id=`123` AND date =`2016-04-08`

我不是在寻找平均值或中位数。我不想看到那 10% 的数据列表。我只是在寻找真或假。

最佳答案

您可以使用条件聚合,如下所示:

select building, date,
(case when avg(temperature > x) > 0.1 then 'Y' else 'N' end) as flag
from t
group by building, date;

关于mysql - 如果mysql中有超过10%的结果超过X,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39755670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com