Redshift Min Window 多个日期/ID 的函数

Redshift Min Window Function over multiple dates/ IDs

我有一些数据看起来像这样(截断):

date        listing_id  inquiry_id  listed_on                    inquiry_date  days_between_list_inquiry
2021-06-08  957         16891       2021-06-08T00:00:00.000Z    2020-12-22      168
2021-06-09  957         17045       2021-06-09T00:00:00.000Z    2020-12-22      169
2021-06-09  957         16985       2021-06-09T00:00:00.000Z    2020-12-22      169
2021-03-04  1117        6869        2021-03-04T00:00:00.000Z    2021-03-01      3
2021-03-05  1117        6933        2021-03-05T00:00:00.000Z    2021-03-01      4
2021-03-08  1117        7212        2021-03-08T00:00:00.000Z    2021-03-01      7
2021-03-11  1117        7449        2021-03-11T00:00:00.000Z    2021-03-01      10

table 捕获每个列表在天级别的每日记录。

对于每个 listing_id,我想创建一个列来捕获与该列表相关的 first_inquiry_date。因此,对于 listing_id 957,那将是 2020-12-22;对于 ID 1117,它将是 2021-03-01。

我试过了:

min(date_trunc('day',li.created_at)) over (order by ll.id asc, date asc rows unbounded preceding) as min_inquiry_date, 

min(date_trunc('day',li.created_at)) over (order by ll.id date rows unbounded preceding) as min_inquiry_date, 

以及各种其他订单,但我没有得到我想要的东西。

如有任何帮助,我们将不胜感激。谢谢!

你需要 partition by:

min(date_trunc('day',li.created_at)) over (partition by listing_id) as min_inquiry_date

你可以这样做

select 
listing_id,
min(inquiry_date) as first_inquiry_date
from [table name]
group by 1