对 MySQL table 中的复杂记录进行排序

Sorting a complex records in MySQL table

我正在做一个个人项目,我卡在清理特定数据集的阶段。该数据集由访问不同停车位(具有唯一的 ParkingID)的代理(具有唯一的 AgentID)的记录组成。他正在使用一个应用程序将他的记录输入数据库。当代理人进入停车场时,他按下按钮进行登录,当他离开时,他在应用程序中按下注销(代理人可以多次按下按钮,因此可能存在重复的登录和注销记录)。当此人访问停车点时,he/she 可以在那个地方遇到某些人时提高一些门票,从而在应用程序中标记 Tickets Finished。 问题是进入数据库的数据只被分类到分钟阶段。因此,具有相同时间的记录可以在数据库中以不同的方式出现。一个这样的虚拟数据集如下所示。

我想把它放在一起排序,先完成的事件应该出现在顶部,而后完成的事件应该出现在最后。我想要的输出如下所示。

我不知道如何在 MySQL 中对此进行排序,如果你们中的任何人都可以帮助我弄清楚如何解决这个问题,那么这对你们来说真的很有帮助。

CASE WHEN 排序以打破平局。

SELECT *
FROM parking_agent_logs
ORDER BY `Date`, `Time`, ParkingID, AgentID
, CASE Event_Type 
  WHEN 'Log In' THEN 1
  WHEN 'Ticket Finished' THEN 2
  WHEN 'Log Out' THEN 3
  ELSE 9
  END

测试 db<>fiddle here