Операторы типа <, =,>, ... ожидают, что скалярный результат будет возвращен из подзапроса. Если он возвращает несколько, это все равно, что сравнивать яблоко с массивом апельсинов.
Я не совсем понимаю вопрос, это то, что вы пытаетесь сделать?
UPDATE products
FROM ( SELECT S.product_id,
CASE WHEN S.sold_count >= SUM(S.sold_count) OVER() THEN P.current_stock + 1
ELSE P.current_stock
END adjusted_Stock
FROM sales S
INNER
JOIN product P
ON S.product_id = P.id
) AS UPDT
SET current_stock = UPDT.adjusted_Stock
WHERE id = UPDT.product_id;