按Mysql分组排序

按Mysql分组排序,mysql,group-by,Mysql,Group By,额外帮助任何人 我试图根据第4列的时间,得到第1列和第2列的值 这是我的桌子 这就是我想要达到的结果 正如您所看到的,最后一行不再存在,因为当涉及传感器id和事件类型时,第1行和最后一行是相同的,但第1行(时间)高于最后一行(时间) 这是到目前为止我的代码 SELECT `sensor_id`,`event_type`,`value`, time FROM `events` ORDER BY `time` DESC 为此,您可以使用GROUP BY子句: SELECT `sensor_id

额外帮助任何人

我试图根据第4列的时间,得到第1列和第2列的值

这是我的桌子

这就是我想要达到的结果

正如您所看到的,最后一行不再存在,因为当涉及传感器id和事件类型时,第1行和最后一行是相同的,但第1行(时间)高于最后一行(时间)

这是到目前为止我的代码

SELECT `sensor_id`,`event_type`,`value`, time FROM `events` ORDER BY `time` DESC

为此,您可以使用GROUP BY子句:

SELECT `sensor_id`, `event_type`, `value`, max(`time`)
FROM `events`
GROUP BY `sensor_id`, `event_type`, `value`
ORDER BY max(`time`) DESC

这回答了你的问题吗?您可以检查这个问题:您正在使用的MySQL版本是什么?如果是MySQL 8.0,您可以使用窗口函数对其进行排序。这是正确的,但是我们可以删除最后一行,因为上有类似的传感器id和事件类型that@PFlorentino我们可以删除最后一行,但在此之前,需要注意的是,最后一行执行您在原始查询中应用的排序。如果没有排序,则组不一定按时间顺序向下排序。