Я думаю тут надо использовать partition by, например вот так:
SELECT item,
sum(left_items) over (partition by item order by price) as left_items,
first_value(price) over (partition by item order by price) as price
WHERE time_end>1 AND left_items>0
Если я правильно понял, то должно быть так.