अगर मैं आपकी आवश्यकता को सही ढंग से समझता हूं, तो आपका week_switch
परिणाम पंक्ति केवल आपके उत्पाद पर निर्भर करती है, उसके टाइमस्टैम्प पर नहीं।
तो इसे एक सबक्वेरी में परिकलित करें।
SELECT product,
(CASE
WHEN MIN(plan_week) <> MAX(plan_week) THEN 'yes'
ELSE 'no' END) AS week_switch
FROM operations
GROUP BY product
फिर उस सबक्वेरी को अपने विवरण में शामिल करें (fiddle )।
WITH switched AS (
SELECT product,
CASE
WHEN MIN(plan_week) <> MAX(plan_week) THEN 'yes'
ELSE 'no' END AS week_switch
FROM operations
GROUP BY product
)
SELECT
operations.time_stamp,
operations.product,
operations.plan_week,
switched.week_switch
FROM operations
LEFT JOIN switched ON operations.product = switched.product
WHERE time_stamp in ('2020-01-01', '2020-03-15')
GROUP BY 1,2;