我有一个表(job_logs)有以下记录: id,job_id,user_id,status,created_at,job_type。
job_logs
id
job_id
user_id
status
created_at
job_type
每次作业开始运行时,都会使用记录job_log表中的记录status='started'。当作业完成运行时,将使用另一个记录添加到表中status='completed'。
job_log
status='started'
status='completed'
这两个记录有相同的user_id,job_type和 JOB_ID (这是由进程中运行作业时确定的-唯一的这2个记录)。
我想要一个查询,该查询将返回表中的所有这些记录对(按ID desc排序),但棘手的部分是我想将作业运行的时间(completed.created_at - started.created_at)添加到“已完成”状态的记录中。
completed.created_at - started.created_at
我怎样才能做到这一点?
SELECT j1.job_id AS job_id, (j2.created_at - j1.created_at) AS time_run FROM job_logs j1 INNER JOIN job_logs j2 ON (j1.job_id = j2.job_id) WHERE j1.status = 'started' AND j2.status = 'completed'