PGSQL:将具有相同客户id的行与>;90天差价

PGSQL:将具有相同客户id的行与>;90天差价,sql,postgresql,Sql,Postgresql,我有一个带有客户ID、潜在客户ID、活动日期和销售日期(如果相关)的表。 目标:对于每一行的销售日期,查看是否有一行的活动日期>90天,然后至少返回最近的一行,最好是列中相邻的两行 潜在客户ID是唯一的,一个客户ID可以有多个潜在客户ID 到目前为止,我从这个查询中得到了以下结果: 选择t1.customer\u id,t1.lead\u id,t1.date\u salled, 最小值(datediff(day,t2.date\u active,t1.date\u active))作为日期d

我有一个带有客户ID、潜在客户ID、活动日期和销售日期(如果相关)的表。 目标:对于每一行的销售日期,查看是否有一行的活动日期>90天,然后至少返回最近的一行,最好是列中相邻的两行

潜在客户ID是唯一的,一个客户ID可以有多个潜在客户ID

到目前为止,我从这个查询中得到了以下结果:

选择t1.customer\u id,t1.lead\u id,t1.date\u salled,
最小值(datediff(day,t2.date\u active,t1.date\u active))作为日期dif
将数据转换为t1
左连接数据为t2
在t1上。客户id=t2。客户id
和t2.date\u active90
按t1.客户id,t1.销售线索id,t1.销售日期分组
在上面的示例中,我只想显示7156775和3116760,因为它们的日期已售出

内部连接数据为t2
其中sd\u date\u sell不为空

另外,我觉得我可以通过使用横向连接来优化它,但我没有成功


SQL优化应该从
EXPLAIN

开始,谢谢,当我添加“WHERE sd_date_Saled不为空”时,查询不会返回任何数据共享,请通过
“date_Saled”varchar(10)
->
从表1中选择*WHERE date_Saled'nan'这真的是正确的类型吗?你是对的,这就是问题所在。我必须加上t1.is_sell=1的位置谢谢!这是真的吗?似乎不是,因为表服务器的品牌没有
DATEDIFF()
。请出示您的标签。我正在使用postgres: