SQL:如何获取最后的项目?
|
我有一个日志,记录了通过我的应用程序的文档。日志如下所示:
TABLE: log
==================================================
| log_id | document_id | status_code | timestamp |
==================================================
| 1 | 10 | 100 | 12345 |
--------------------------------------------------
| 2 | 10 | 200 | 23456 |
--------------------------------------------------
我需要一个在给定的持续时间(例如10分钟;“ 3”是Unix时间戳,btw)中被“卡住”到某个“ 2”中的“ 1”的列表。如果某个特定的“ 1”在某个“ 2”中被“塞住”,则该“ 2”将是该“ 1”的最后一个“ 2”。
我该如何查询?我不确定的两件事:
如何检查文档在一段时间内是否处于某种状态?我想我可以在SQL中使用某种函数/公式(例如now
-10分钟),但是我不知道该怎么做。
如何仅检查最后一个状态码的持续时间?
没有找到相关结果
已邀请:
3 个回复
贸会
钨蜡唤喉晤
好吧,那里藏着什么。我们将按document_id对行进行分组,并在GROUP_CONCAT内对状态代码和时间戳进行排序,以获取最后一个和倒数第二个条目。 如果您的状态码可以包含5位以上的数字,则将其替换为RPAD(
,X),其中X是status_code长度的最大数目 60 * 10-是10分钟
IN(100,200)-状态码您只想获取。
迪擅哨乘傅