如何解决选择过去24小时和过去30天的最低和最高温度
我有一个用于数据记录器的mysql数据库。我想找到最近24小时和最近30天的最小值和最大值(温度)。我真的没有Mysql和php的经验。我试过了,但是没用。
webpack.config.js
谢谢
解决方法
您可以使用条件聚合。假设度量日期存储在ts
列中,您可以这样表述:
select
min(case when ts > now() - interval 1 day then temperature end) min_last_24h,min(ts) min_last_30_day
from datalogger
where ts > now() - interval 30 day
这将生成一个由一行和两列组成的结果集,在两个不同日期范围内的最低温度。
如果要在两个不同的行中使用,则一种方法是:
select x.when,min(temperature) min_temperature
from datalogger d
inner join (
select 'last 1 day' when,1 d
union all select 'last 30 day',30
) x on d.ts > now() - interval x.d day
from datalogger
group by x.when
,
您需要两个查询。一个用于表示过去一天的每小时最小值/最大值,另一个是过去30天的每日最小值/最大值。
$last_day = $conn->query('SELECT MIN(temperature) AS mintemp,MAX(temperature) AS maxtemp
FROM datalogger
WHERE time > NOW() - INTERVAL 1 DAY');
$row = $last_day->fetch_assoc();
echo "24 hours: Lowest temp = {$row['mintemp']},highest temp = {$row['maxtemp']}<br>";
$last_month = $conn->query('SELECT MIN(temperature) AS mintemp,MAX(temperature) AS maxtemp
FROM datalogger
WHERE time > NOW() - INTERVAL 30 DAY');
$row = $last_day->fetch_assoc();
echo "30 days: Lowest temp = {$row['mintemp']},highest temp = {$row['maxtemp']}<br>";
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。