Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

टाइमस्टैम्प के मूल्यों की तुलना करें और उनमें से प्रत्येक को एक मान निर्दिष्ट करें यदि वे बदल गए हैं

अगर मैं आपकी आवश्यकता को सही ढंग से समझता हूं, तो आपका 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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. हाइबरनेट - ClassNotFoundException:com.mysql.jdbc.Driver

  2. मैं पदों की संख्या कैसे गिन सकता हूं?

  3. MySQL में वेरिएबल कैसे घोषित करें?

  4. MySQL त्रुटि क्यों दे रहा है किसी फ़ंक्शन से परिणाम सेट वापस करने की अनुमति नहीं है?

  5. गेटटेक्स्ट या डेटाबेस अनुवाद