sql – 如作甚每个键值选择具有最新时刻戳的行?
发布时间:2021-01-18 13:03:48 所属栏目:编程 来源:网络整理
导读:我有一张传感器数据表.每行都有一个传感器ID,一个时刻戳和其他字段.我想为每个传感器选择一个具有最新时刻戳的行,包罗一些其他字段. 我以为办理方案是按传感器ID举办分组,然后按max(timestamp)次序排序,如下所示: SELECT sensorID,timestamp,sensorField1,se
我有一张传感器数据表.每行都有一个传感器ID,一个时刻戳和其他字段.我想为每个传感器选择一个具有最新时刻戳的行,包罗一些其他字段. 我以为办理方案是按传感器ID举办分组,然后按max(timestamp)次序排序,如下所示: SELECT sensorID,timestamp,sensorField1,sensorField2 FROM sensorTable GROUP BY sensorID ORDER BY max(timestamp); 这给了我一个错误,说“sensorField1必需呈此刻group by子句中可能在聚合中行使”. 办理这个题目的正确要领是什么? 办理要领为了完备起见,这是另一种也许的办理方案:SELECT sensorID,sensorField2 FROM sensorTable s1 WHERE timestamp = (SELECT MAX(timestamp) FROM sensorTable s2 WHERE s1.sensorID = s2.sensorID) GROUP BY sensorID; 我以为很是自我表明,但假如你乐意,可以提供更多信息,以及其他例子.它来自MySQL手册,但上面的查询合用于每个RDBMS(实现sql’92尺度). (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |