SQL从两个不同的条件计算平均值

时间:2019-03-26 19:42:55

标签: timestamp db2 conditional-statements difference

需要计算从呼叫中心代表收到线索开始的响应时间以及他需要多长时间进行跟进

计算代理人看到“ NEW”线索和“ Follow_up”所花费的时间

表T

ID T_NAME CRTE_TIMESTMP

123,NEW,2019-01-01-00.15.32.2820000

456,NEW,2019-01-01-00.16.23.4320000

123,跟进,2019-01-02-15.31.48.1640000

**结果应为**

ID TIME_TOOK

123,(2019-01-01-00.15.32.2820000)-(2019-01-02-15.31.48.1640000)

1 个答案:

答案 0 :(得分:0)

可能看起来像这样

with temp as (
select ID
     , T_NAME
     , CRTE_TIMESTMP,
       lag(CRTE_TIMESTMP) over (partition by id order by CRTE_TIMESTMP) as CRTE_TIMESTMP_lag
from t
) 
select ID
     , hours_between (CRTE_TIMESTMP,CRTE_TIMESTMP_lag ) as time_took
  from temp
 where t_name = 'FOLLOW-UP'

根据您需要的粒度,您还可以在Db2 11中使用seconds_between或days_between或任何其他提供的功能