我的表格包含以下列,|id|incident_number|created_at|note|
。
因此每个事件可以有多个更新,更新按 ID 进行分类,并以 2014-01-30 21:11:56
的形式给出 created_at
时间>。因此,一个 incident_number
可以拥有多个 id 和多个created_at,具体取决于其更新频率。
我想做的是按照与时间相对应的最近一个来过滤掉所有其他created_at
。
问题是,在运行查询时,我无法查看数据并判断created_at是否小于给定日期,因为我不确定这些事件何时得到处理。
大局是我将能够显示每个事件的最新更新,按created_at
日期排序。
有什么建议吗?
最佳答案
我在你的问题中有点迷失,但这可能会给你一个想法:
SELECT MAX(created_at) FROM ... GROUP BY incident_number
编辑:由于您的评论,我添加了此内容。
是的,MAX 仅返回最高值。我的声明是帮助您找到该值(value)并添加您认为合适的其他值(value)。我想你需要的是这样的:
SELECT MAX(created_at), incident_number, note FROM ... GROUP BY incident_number, note
对于每个事件,仅显示具有最近的created_at时间戳的行。
EDIT2:正如您提到的一个错误,我检查了我的 SQL。 GROUP BY
子句中缺少 note
列。我不认为有必要进行子选择。
关于mysql - 查找每个事件的最新时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21584672/