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

Postgresql :मैं प्रत्येक समूह/श्रेणी से शीर्ष n प्रतिशत (%) प्रविष्टियों का चयन कैसे करूं?

प्रत्येक समूह में पंक्तियों की संख्या के प्रतिशत के आधार पर पंक्तियों को पुनः प्राप्त करने के लिए आप दो विंडो फ़ंक्शंस का उपयोग कर सकते हैं:एक पंक्तियों की गणना करने के लिए और एक उन्हें एक अद्वितीय संख्या देने के लिए।

select gp,
       val
from (
  select gp, 
         val,
         count(*) over (partition by gp) as cnt,
         row_number() over (partition by gp order by val desc) as rn
  from temp
) t
where rn / cnt <= 0.75;

SQLFiddle उदाहरण:http://sqlfiddle.com/#!15/94fdd/1

बीटीडब्ल्यू:char . का उपयोग करना लगभग हमेशा एक बुरा विचार है क्योंकि यह एक निश्चित-लंबाई वाला डेटा प्रकार है जो परिभाषित लंबाई तक गद्देदार होता है। मुझे आशा है कि आपने केवल उदाहरण स्थापित करने के लिए ऐसा किया है और इसे अपनी वास्तविक तालिका में उपयोग नहीं करते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कैसे Cos () PostgreSQL में काम करता है

  2. EXECUTE FORMAT का उपयोग कैसे करें ... पोस्टग्रेज फ़ंक्शन में उपयोग करना

  3. विंडोज के लिए पोस्टग्रेएसक्यूएल विकसित करना, भाग 3

  4. आपको PostgreSQL क्यों सीखना चाहिए?

  5. PostgreSql:लेटरल जॉइन का उपयोग करके पंक्तियों के लिए Json Array