У меня есть таблица SQL ниже, в которой мне нужна самая последняя цена, только когда тип условия равен 00.
Table:
ProductID ConditionType Date Price
00001 01 2018-01-01 4.00
00001 01 2018-01-08 5.00
00001 00 2018-01-09 4.50
00001 01 2018-01-22 6.00
00001 00 2018-01-29 3.00
Я устал использовать функцию задержки, но у меня проблемы с разделами.
select
ProductID,ConditionType,Date,Price
,
case when conditiontype = 0 then
lag(Price,1) over (partition by ProductID,ConditionType order by Date asc)
else Price
end as lag
from TABLE
Output from query:
ProductID ConditionType Date Price Lag
00001 01 2018-01-01 4.00 4.00
00001 01 2018-01-08 5.00 5.00
00001 00 2018-01-09 4.50 null
00001 01 2018-01-22 6.00 6.00
00001 00 2018-01-29 3.00 4.50
В идеале мы хотим отозвать последнюю цену, где тип условия равен 01, но у меня возникают проблемы при получении этой работы.
Desired output:
ProductID ConditionType Date Price Lag
00001 01 2018-01-01 4.00 4.00
00001 01 2018-01-08 5.00 5.00
00001 00 2018-01-09 4.50 5.00
00001 01 2018-01-22 6.00 6.00
00001 00 2018-01-29 3.00 6.00
Спасибо заранее за помощь.