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

Postgres में विभाजन पर Oracle गिनती (विशिष्ट) को कैसे लागू करें

Postgres count(distinct) . का समर्थन नहीं करता है सीधे। लेकिन आप इसे एक सबक्वेरी के साथ लागू कर सकते हैं:

select . . .,
       sum( (seqnum_tm = 1)::int) as mob_segments_count ,
       sum( (seqnum_tr = 1)::int) as countries_count
from (select . . .,
             row_number() over (partition by pm.trans_id, pm.country_reg_region_cd order by pm.country_reg_region_cd) as seqnum_tr,
             row_number() over (partition by pm.trans_id, pm.mobseg_state order by pm.pm.mobseg_state) as seqnum_tm
      . . .
     ) . . .

विचार सरल है। गणना करें row_number() partition by . पर कुंजियाँ और विशिष्ट स्तंभ। फिर, मान "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. पोस्टग्रेज में JSON फ़ील्ड के साथ CSV लोड करने के लिए \COPY का उपयोग करना

  2. मैं किसी भूमिका के लिए सभी डेटाबेस और ऑब्जेक्ट ग्रांट की समीक्षा कैसे कर सकता हूं?

  3. संग्रहीत प्रक्रिया से मूल्य कैसे वापस करें (फ़ंक्शन नहीं)?

  4. संभावित अपरिभाषित मानों को संभालने के दौरान SQL चयन क्वेरी बनाने के लिए सर्वोत्तम अभ्यास

  5. ActiveRecord rbenv का उपयोग करके गलत डेटाबेस से कनेक्ट करने का प्रयास कर रहा है