Mysql 返回错误值的SQL查询
我有一个MariaDB天气数据库,每15分钟更新一次当前情况。我试图查询它以返回特定月份的最高温度。 当我用“selecttemp,datetime fromtable”查询它时,我得到了所有temp和记录的时间的列表。我可能会在一个小时左右的时间间隔15分钟内得到3-4个相同温度的记录。 为了得到一个具体的月份,我试着“选择temp,logdatetime FROM Monthly,其中logdatetime类似于'2020-01%'的订单由temp desc提供”,我得到了我期望的结果。(日期时间格式为YYYY-MM-DD HH:MM:ss) 临时雇员 日志日期时间 40.2 2020-01-04 16:15:00 40.1 2020-01-04 15:30:00 40.1 2020-01-04 17:00:00 40.1 2020-01-04 17:30:00 40.1 2020-01-31 16:15:00 40 2020-01-04 16:45:00 40 2020-01-31 16:00:00 使用Mysql 返回错误值的SQL查询,mysql,datetime,mariadb,Mysql,Datetime,Mariadb,我有一个MariaDB天气数据库,每15分钟更新一次当前情况。我试图查询它以返回特定月份的最高温度。 当我用“selecttemp,datetime fromtable”查询它时,我得到了所有temp和记录的时间的列表。我可能会在一个小时左右的时间间隔15分钟内得到3-4个相同温度的记录。 为了得到一个具体的月份,我试着“选择temp,logdatetime FROM Monthly,其中logdatetime类似于'2020-01%'的订单由temp desc提供”,我得到了我期望的结果。(日
选择*
从logdatetime开始
其中logdatetime介于“2020-01-01 00:00:00”和“2020-01-31 23:59:59”之间
按温度说明订购
限制1
此查询选择2020年1月最高温度的行
如果存在许多具有相同最大温度值的行,则此查询将返回其中一行(通常,您无法预测将返回所有可能的行中的哪一行)。如果您需要某种确定的(例如,最后一个),那么您可以展开排序表达式(例如,直到orderbytemp DESC,logdatetime DESC
)
如果需要具有最大温度的所有行,则必须首先在子查询中获取该最大值,然后在查询中使用该值进行行过滤。或者,在MySQL 8+版本中,您可以在CTE中使用RANK()函数。Akina,
这很有效。非常感谢你的帮助。
Peterlogdatetime如“2020-01%”永远不要这样做。使用logdatetime在'2020-01-01 00:00:00'和'2020-01-31 23:59:59'之间。如果我尝试“选择max(temp),logdatetime FROM Monthly WHERE logdatetime,如'2020-01%',则会犯逻辑错误。