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

परिवर्तनशील अंतराल लंबाई के साथ कठिनाई

पिछली पंक्ति में रद्द दिनांक की तुलना करने के बजाय आपको पिछली सभी पंक्तियों में नवीनतम रद्द दिनांक से तुलना करने की आवश्यकता है। इसे प्राप्त करने के लिए मानक SQL में IGNORE NULLS विकल्प है, लेकिन MySQL इसका समर्थन नहीं करता है। सौभाग्य से आपके मामले में इसे संचयी अधिकतम का उपयोग करके फिर से लिखा जा सकता है:

select t.*,
       datediff(start, prev_cancelled) as num_days_since_cancel
from (select dt.*,
             max(cancelled) over -- latest date per id
             (partition by id 
              order by start
              rows between unbounded preceding and 1 preceding) as prev_cancelled
      from dt
     ) t
-- remove negative duration
where datediff(start, prev_cancelled) >= 0;

देखें fiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या मैं एक पूर्ण MySQL mysqldump फ़ाइल से एकल तालिका को पुनर्स्थापित कर सकता हूं?

  2. MySQL में वृद्धिशील बैकअप करने का सबसे अच्छा तरीका क्या है?

  3. MySQL SUM () गलत टोटल दे रहा है

  4. MySQL:अद्यतन पंक्तियों को वापस करें

  5. विंडोज़ में बड़ी फ़ाइलों को आयात करने के लिए आप MySQL के स्रोत कमांड का उपयोग कैसे करते हैं?