我有一个名为raw_data的表,带有列,如图所示。
我想找到给定时间之间的“ temp_out”列的最大值,获取该最大值和出现最大值时的时间。
我的代码是:
SELECT time, temp_out AS temp_out_max
FROM raw_data
WHERE temp_out = (SELECT MAX(temp_out)
FROM raw_data
WHERE time BETWEEN '$time_yesterday' AND '$time_yesterday_2'
)
它会在给定时间之间找到最大值,但是不会返回与给定时间之间最大值匹配的时间。
怎么了?我已经尝试了一切...谢谢您的答复。
答案 0 :(得分:0)
如果您要查找一行,则可以执行以下操作:
SELECT time, temp_out AS temp_out_max
FROM raw_data
WHERE time BETWEEN ? AND ?
ORDER BY temp_out DESC
FETCH FIRST 1 ROW ONLY;
?
是参数的占位符。这就是您应该将常量值传递到查询中的方式。
FETCH FIRST 1 ROW ONLY
是标准的SQL语法。某些数据库使用SELECT TOP
或LIMIT
。 MySQL使用LIMIT
。
答案 1 :(得分:0)
您还需要外部查询的时间限制:
<VQCIA>:
goi: g_o_i
BoxLayout:
orientation: "vertical"