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

प्रतिशत SQL Oracle

मेरा सुझाव है कि विंडो फ़ंक्शन का उपयोग करके रनिंग प्रतिशत की गणना करें और फिर परिणाम की तुलना 80 से करें।

इस छोटे से कोड नमूने में मैंने दिखाया है कि इसे कैसे करना है, यह आपकी क्वेरी के परिणाम के आधार पर एक सीटीई ब्लॉक में रखा गया है जिसे your_data कहा जाता है। . यह आपको केवल विचार दिखाता है।

with 
    your_data (category, percentage) as(
        -- sample data based on your example
        select 1, 32 from dual union
        select 2, 20 from dual union
        select 3, 20 from dual union
        select 4, 10 from dual union
        select 5, 18 from dual
    ),
    t as (
        select  your_data.*,
                -- running sum calculation
                sum(percentage) over (order by category) pctg_running
          from  your_data 
    )
select * 
  from t
 where pctg_running <= 80

असल में यह 3 पंक्तियां देता है और आप कहते हैं कि आप 4 पंक्तियों को दिखाने की उम्मीद करते हैं। उस पंक्ति को जोड़ने के लिए जहां रनिंग प्रतिशत पहले आपकी सीमा (80) से अधिक है, आप वर्तमान श्रेणी प्रतिशत को रनिंग वैल्यू से निकाल सकते हैं, यानी sum(percentage) over (order by category) बदलें। sum(percentage) over (order by category) - percentage

एचटीएच




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ओरेकल - एक ही प्रश्न लेकिन 11 जी और 12 सी में अलग योजना

  2. वर्ग में प्रत्येक समूह की पहली पंक्ति का चयन करें

  3. Oracle में चयन कथन के परिणामस्वरूप अल्पविराम से अलग की गई सूची

  4. ORA-01401:कॉलम CHAR के लिए डाला गया मान बहुत बड़ा है

  5. Oracle Sql लोडर का उपयोग करके वर्तमान टाइमस्टैम्प के साथ टाइमस्टैम्प फ़ील्ड को कैसे पॉप्युलेट करें?