我已经看到类似的问题,但是似乎没有一个问题涵盖我要构建的查询。
我有一个到服务器的请求日志数据库,其中包括入站和出站连接,我正在尝试为每个请求获取日志中的第一项。
数据库看起来像这样: id,requestid,时间戳,消息
我想按requestid分组,但是从每个requestid中获取最低的ID,这将是请求的第一个日志项。
我发现类似的请求可以按requestid分组,然后按requestid分组,但这并不能满足我的要求。我尝试添加orderby requestid,id,但这也将id 2作为返回的第一项。
这是我最近来过的: 从日志中选择id,requestid,其中id限制(从(按id从日志中选择id,requestid,按id依次选择)中的(requestid)id选择为foo),按id限制5; 但是返回的第一项是ID 2,而不是ID 1。
任何有关此的技巧都将非常有帮助,谢谢。
答案 0 :(得分:1)
您可以在按请求ID的组上使用内部联接
select id, requestid, timestamp, message
from logs
inner join (
select min(id) as min_id , requestid
from logs
group by requestid
) t on t.min_id = logs.id and t.requestid = logs.requestid