0

我试图找出在 30 分钟内与同一客户进行过互动的所有代理,因为他们可能会感到困扰,不应该经常打电话给他们。

桌子

我不太确定如何解决这个问题,因为案例语句最好在一行中工作。也许循环会遍历行(使用redshift)?

4

1 回答 1

0

提示:您可以使用LAG()函数查找上一次调用的时间戳。

完整答案:

WITH interactions AS (
    SELECT 
        agent, 
        customer, 
        call_time, 
        LAG(call_time) OVER (PARTITION BY agent, customer ORDER BY call_time) AS prev_call_time
    FROM 
        orders 
)
SELECT DISTINCT 
    agent, 
    customer
FROM
    interactions
WHERE  
    DATEADD(MINUTE, prev_call_time, 30) >= call_time    
;
于 2021-02-03T15:54:23.530 回答