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

पोस्टग्रेज अनुपात_to_report फ़ंक्शन

आपको विशिष्ट फ़ंक्शन आयात करने की बिल्कुल भी आवश्यकता नहीं है। विंडो वाले SUM . का उपयोग करके Postgresql समकक्ष :

SELECT ID, val, 1.0 * val / NULLIF(SUM(val) OVER(),0) AS ratio_to_report
FROM tab

SqlFiddleDemo

आउटपुट:

╔═════╦══════╦═════════════════════╗
║ id  ║ val  ║   ratio_to_report   ║
╠═════╬══════╬═════════════════════╣
║  1  ║  10  ║ 0.16666666666666666 ║
║  2  ║  10  ║ 0.16666666666666666 ║
║  3  ║  20  ║ 0.3333333333333333  ║
║  4  ║  20  ║ 0.3333333333333333  ║
╚═════╩══════╩═════════════════════╝

PARTITION BY का अनुकरण करने के लिए आप उपयोग कर सकते हैं:

SELECT ID, val, category,
    1.0 * val / NULLIF(SUM(val) OVER(PARTITION BY category),0) AS ratio_to_report
FROM tab

SqlFiddleDemo2

आउटपुट:

╔═════╦══════╦═══════════╦═════════════════╗
║ id  ║ val  ║ category  ║ ratio_to_report ║
╠═════╬══════╬═══════════╬═════════════════╣
║  1  ║  10  ║ a         ║ 0.25            ║
║  2  ║  10  ║ a         ║ 0.25            ║
║  3  ║  20  ║ a         ║ 0.5             ║
║  4  ║  20  ║ b         ║ 1               ║
╚═════╩══════╩═══════════╩═════════════════╝



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jsonb फ़ील्ड पर अनुक्रमणिका जोड़ें

  2. OS X पर Postgres.app का उपयोग करते समय psql को पथ पर कैसे रखें?

  3. org.hibernate.internal.util.config.ConfigurationException:cfg.xml संसाधन का पता नहीं लगा सका [/HibernateTest/src/hibernate.cfg.xml]

  4. pgAdmin में pgsql स्क्रिप्ट कैसे निष्पादित करें?

  5. सभी PostgreSQL टेबल से जुड़ें और एक पायथन डिक्शनरी बनाएं