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

एसक्यूएल का उपयोग कर कॉलम में लगातार लगातार मूल्यों की संख्या कैसे गिनें?

कुछ इस तरह?

SQL> with test (name, day, srvc_inv) as
  2    (select 'bill', 1, 1 from dual union all
  3     select 'bill', 2, 1 from dual union all
  4     select 'bill', 3, 0 from dual union all
  5     select 'bill', 4, 0 from dual union all
  6     select 'bill', 5, 1 from dual union all
  7     select 'bill', 6, 0 from dual union all
  8     select 'susy', 1, 1 from dual union all
  9     select 'susy', 2, 0 from dual union all
 10     select 'susy', 3, 1 from dual union all
 11     select 'susy', 4, 0 from dual union all
 12     select 'susy', 5, 1 from dual
 13    ),
 14  inter as
 15    (select name, day, srvc_inv,
 16       nvl(lead(srvc_inv) over (partition by name order by day), 0) lsrvc
 17     from test
 18    )
 19  select name,
 20    sum(case when srvc_inv <> lsrvc and lsrvc = 0 then 1
 21             else 0
 22        end) grp
 23  from inter
 24  group by name;

NAME        GRP
---- ----------
bill          2
susy          3

SQL>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. इसके पैरामीटर नामों और प्रकारों के लिए संग्रहीत कार्यविधि को क्वेरी करें

  2. तालिका में डुप्लिकेट पंक्तियां हटाएं

  3. ORA-00979 व्यंजक द्वारा समूह नहीं है

  4. ओरेकल:प्रक्रियाओं में तत्काल तत्काल बयानों के लिए प्रक्रिया स्थानीय चर का उपयोग कैसे करें

  5. Oracle प्रक्रिया में वैश्विक अस्थायी तालिका का उपयोग कैसे करें?