Reputation: 352
data like this:
timestamp id roas
day 5 id1 1.3
day 4 id1 2.1
day 3 id1 1.9
day 2 id1 1.4
day 1 id1 3.0
I want to get data of the first day when roas < = 1.5 for all row have 'id1' that is day 2
, desired result:
timestamp id roas min_date
day 5 id1 1.3 day 2
day 4 id1 2.1 day 2
day 3 id1 1.9 day 2
day 2 id1 1.4 day 2
day 1 id1 3.0 day 2
Currently, I use:
, t2 as (select *, case when roas < = 1.5 then timestamp else null end as day_roas from t1)
select *, min(day_roas) over (partition by id) as min_date
from t2
Upvotes: 0
Views: 95
Reputation: 664589
You can use a FILTER
clause with your window function:
SELECT *, min(timestamp) FILTER (WHERE roas <= 1.5) OVER (PARTITION BY id) FROM t1
Upvotes: 1