Вы хотите условное агрегирование:
select *, datediff(day, OpenDate, RespDate) as Avg_Handle_Duration
from (select Assigned, workflow_Id,
max(case when Status = 'Open' then Date end) as OpenDate,
max(case when Status = 'Resp' then Date end) as RespDate,
from table t
group by Assigned, workflow_Id;
) t;
Использование СУБД конкретная функция даты (т.е. разница дат), которую я использовал SQL Server
специфично, так как o / pне имеет СУБД с тегами.Итак, используйте соответственно.
Очень плохо для меня, потому что я неправильно понял вопрос.Что ж, если ваша СУБД имеет аналитическую функцию, вы можете использовать ее как разность.
select assigned, workflow_id,
max(case when Status = 'Open' then date end) as OpenDate,
max(case when Status = 'Resp' then date end) as RespDate,
. . .
from (select *,
1+(row_number() over (order by date)-1)/2 Seq
from table
) t
group by assigned, workflow_id, Seq;