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

SQL - एक आदेशित सूची में परिवर्तनों की संख्या की गणना करें

आप विश्लेषणात्मक कार्यों का उपयोग कर सकते हैं LEAD और LAG किसी परिणाम सेट की पिछली और अगली पंक्ति तक पहुंचने के लिए और फिर उसका उपयोग करके देखें कि क्या कोई परिवर्तन है या नहीं।

SQL> ed
Wrote file afiedt.buf

  1  with t as (
  2    select date '2011-10-22' dt, 3.2 price from dual union all
  3    select date '2011-10-23', 3.4 from dual union all
  4    select date '2011-10-24', 3.4 from dual union all
  5    select date '2011-10-25', 3.5 from dual union all
  6    select date '2011-10-26', 3.4 from dual union all
  7    select date '2011-10-27', 3.2 from dual union all
  8    select date '2011-10-28', 3.2 from dual
  9  )
 10  select sum(is_change)
 11    from (
 12      select dt,
 13             price,
 14             lag(price) over (order by dt) prior_price,
 15             (case when lag(price) over (order by dt) != price
 16                   then 1
 17                   else 0
 18               end) is_change
 19*       from t)
SQL> /

SUM(IS_CHANGE)
--------------
             4


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JSON बनाना और एक जटिल क्वेरी संपादित करना (oracle 11g)

  2. औसत समय अंतराल कैसे करें?

  3. अन्य उपयोगकर्ताओं को v$session का चयन एक्सेस प्रदान करें

  4. ट्रांजेक्शनस्कोप के अंदर बैच प्रविष्टि करते समय ORA-00604 त्रुटि

  5. Oracle SQL - IN खंड तालिका में डेटा मौजूद नहीं होने पर भी IN स्थिति में दिए गए सभी रिकॉर्ड प्रदर्शित करता है