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

पदानुक्रमित संरचना में ऑरैकल क्वेरी का उपयोग करके यह परिणाम कैसे प्राप्त करें

मुझे लगता है कि मैं इसे विश्लेषणात्मक कार्यों के साथ करने में कामयाब रहा हूं (सुंदरता से नहीं, लेकिन फिर भी) -

with
grps as(
    select marker
    from(
        select collateral_num,
               loan_num,
               rownum as marker,
               case when lead(loan_num,1) over (order by collateral_num) <> loan_num
                         and lead(collateral_num,1) over (order by collateral_num) <> collateral_num
                    then 1
                    when lead(loan_num,1) over (order by collateral_num) is null
                    then 1
                    else null end as grp
          from  loan
         order by collateral_num
        )
    where grp is not null
       )
, marked as(
    select loan.*, grps.*, row_number() over(partition by marker order by collateral_num) as splitter
    from loan, grps
           )
select  collateral_num,
        min(collateral_num) over (partition by marker) as min_collateral_num,
        loan_num
from    marked y
where   splitter <= marker
    and (splitter > (select max(x.marker) from marked x where x.marker < y.marker)
     or marker = (select min(marker) from marked))

sqlfiddle को http://sqlfiddle.com/#!4/cfb1a7/40/ पर देखें। 0




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TNS के माध्यम से Oracle से कनेक्शन काम नहीं कर रहा है

  2. एपेक्स ओरेकल में बहु-चयन सूची कैसे बनाएं और उपयोग करें?

  3. Oracle में मान्य दिनांक जाँच

  4. गैर-कार्डिनल मानों वाली पिवट तालिका

  5. दूरस्थ सर्वर के लिए Oracle डेटा पंप impdp