Nie wiem jak wygląda twoja tabela, więc zrobię tak jak sam zadałeś pytanie, czyli na ślepo... byle-jak, może Ci to pomoże:
SELECT DISTINCT customer_id
FROM (
SELECT
customer_id,
order_date,
LAG(order_date) OVER (PARTITION BY customer_id ORDER BY order_date) AS prev_order_date
FROM orders
) AS order_with_prev
WHERE YEAR(order_date) = 2023
AND COALESCE(DATEDIFF(order_date, prev_order_date), 999) > 180
AND (prev_order_date IS NULL OR YEAR(prev_order_date) < 2023)
W tym zapytaniu użyto funkcji LAG, aby uzyskać poprzednią datę zamówienia dla każdego klienta, a następnie sprawdzono różnicę między datą obecnego zamówienia a poprzednim zamówieniem.