如何查找每行两个日期之间的行

问题描述 投票:1回答:2

我有下表:

topic_id conversation      logical_date         start_date        end_date        type
1            1           2020-01-01 09:00    2020-01-01 09:00  2020-01-01 09:50 phone call
1            2           2020-01-01 09:14                                         text
1            3           2020-01-01 10:27                                         text
2            1           2020-02-03 08:40                                         text

此表代表支持请求。每个支持请求都有一个主题,并且该主题具有1个或多个对话。

我想查找在电话开始日期和结束日期之间进行的所有文本请求。

因此,我要查看上表:

topic_id conversation_id start_date            end_date        sum
 1            1           2020-01-01 09:00 2020-01-01 09:50     1 

逻辑是:对于每个topic_id,请键入=“电话”,以start_date和end_date为准将它们与来自此topic_id的type ='text'对话进行比较将其逻辑日期介于起始日期和结束日期之间的那些求和]

我知道我需要使用窗口功能来执行此操作,但是我不确定如何操作。

这是我到目前为止所拥有的:

select topic_id, conversation_id, start_date, end_date, count(1 ) over partition by () 
from table
where type = 'phone call'

我正在使用Presto

我有下表:topic_id对话logical_date开始日期date_date类型1 1 2020-01-01 09:00 2020-01-01 09:00 2020-01-01 09:50 ...

sql date count window-functions presto
2个回答
1
投票
我认为您想要:

1
投票
您可以使用相关子查询来为每个'text'记录计算可为同一topic_id找到多少'phone call'条记录:
© www.soinside.com 2019 - 2024. All rights reserved.