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

PostgreSQL में रो नंबर कैसे प्राप्त करें

PostgreSQL आपको रैंकिंग, रिपोर्टिंग और डेटा विश्लेषण के लिए अपने डेटा के लिए विशिष्ट पंक्ति संख्या प्राप्त करने की अनुमति देता है। यहां बताया गया है कि PostgreSQL में पंक्ति संख्या कैसे प्राप्त करें। आप PostgreSQL में पंक्ति Id के आधार पर आगे के विश्लेषण के लिए इसका उपयोग कर सकते हैं।

PostgreSQL में पंक्ति संख्या कैसे प्राप्त करें

यहां बताया गया है कि PostgreSQL में विशिष्ट पंक्ति संख्या कैसे प्राप्त करें। हम देखेंगे कि PostgreSQL 8.4+ में उपलब्ध ROW_NUMBER() विंडो फ़ंक्शन के साथ-साथ PostgreSQL <8.4 के लिए सादे SQL का उपयोग करके पंक्ति संख्या कैसे प्राप्त करें।

मान लें कि आपके पास निम्न तालिका है बिक्री(order_date,sale)

postgres=# create table sales(order_date date,sale int);

postgres=# insert into sales values('2020-04-01',210),
           ('2020-04-02',125),('2020-04-03',150),('2020-04-04',230),
           ('2020-04-05',200),('2020-04-10',220),('2020-04-06',25),
           ('2020-04-07',215),('2020-04-08',300),('2020-04-09',250);

postgres=# select * from sales;
 order_date | sale
------------+------
 2020-04-01 |  210
 2020-04-02 |  125
 2020-04-03 |  150
 2020-04-04 |  230
 2020-04-05 |  200
 2020-04-10 |  220
 2020-04-06 |   25
 2020-04-07 |  215
 2020-04-08 |  300
 2020-04-09 |  250

बोनस पढ़ें :PostgreSQL में पर्सेंटाइल की गणना कैसे करें

ROW_NUMBER() का उपयोग करके PostgreSQL में पंक्ति संख्या कैसे प्राप्त करें

PostgreSQL 8.4 के बाद से, आप ROW_NUMBER() फ़ंक्शन का उपयोग करके PostgreSQL में आसानी से पंक्ति संख्या दिखा सकते हैं। यहाँ PostgreSQL में पंक्ति आईडी प्राप्त करने के लिए SQL क्वेरी है।

postgres=# select row_number() over(), *
           from   sales;
 row_number | order_date | sale
------------+------------+------
          1 | 2020-04-01 |  210
          2 | 2020-04-02 |  125
          3 | 2020-04-03 |  150
          4 | 2020-04-04 |  230
          5 | 2020-04-05 |  200
          6 | 2020-04-10 |  220
          7 | 2020-04-06 |   25
          8 | 2020-04-07 |  215
          9 | 2020-04-08 |  300
         10 | 2020-04-09 |  250

उपरोक्त SQL क्वेरी में, हम प्रत्येक पंक्ति के लिए पंक्ति संख्या उत्पन्न करने के लिए row_number() विंडो फ़ंक्शन का उपयोग करते हैं। हम बिना किसी क्रम के सभी पंक्तियों के लिए पंक्ति संख्या प्रदर्शित करने के लिए PostgreSQL को बताने के लिए over() का भी उपयोग करते हैं।

बोनस पढ़ें :PostgreSQL में माध्यिका की गणना कैसे करें

यदि आप पंक्ति संख्या उत्पन्न करने से पहले पंक्तियों को क्रमित करना चाहते हैं, तो आप OVER() में खंड द्वारा एक आदेश जोड़ सकते हैं, जैसा कि नीचे दिखाया गया है

postgres=# select row_number() over(order by sale), *
           from   sales;
 row_number | order_date | sale
------------+------------+------
          1 | 2020-04-06 |   25
          2 | 2020-04-02 |  125
          3 | 2020-04-03 |  150
          4 | 2020-04-05 |  200
          5 | 2020-04-01 |  210
          6 | 2020-04-07 |  215
          7 | 2020-04-10 |  220
          8 | 2020-04-04 |  230
          9 | 2020-04-09 |  250
         10 | 2020-04-08 |  300

आप ROW_NUMBER या OVER() विंडो फ़ंक्शंस में WHERE क्लॉज़ का उपयोग नहीं कर सकते। इसलिए यदि आप पंक्ति संख्या उत्पन्न करने से पहले डेटा को फ़िल्टर करना चाहते हैं, तो आपको एक सबक्वेरी में WHERE कारण का उपयोग करने की आवश्यकता है, जैसा कि नीचे दिखाया गया है

postgres=# select row_number() over(order by sale), *
           from  ( select * from sales where sale>100) filtered_sales;
 row_number | order_date | sale
------------+------------+------
          1 | 2020-04-02 |  125
          2 | 2020-04-03 |  150
          3 | 2020-04-05 |  200
          4 | 2020-04-01 |  210
          5 | 2020-04-07 |  215
          6 | 2020-04-10 |  220
          7 | 2020-04-04 |  230
          8 | 2020-04-09 |  250
          9 | 2020-04-08 |  300

आप Generate_series का उपयोग करके PostgreSQL में पंक्ति संख्या भी प्राप्त कर सकते हैं। हालांकि, यह सलाह दी जाती है कि generate_series . का उपयोग करके पंक्ति आईडी उत्पन्न न करें चूंकि यह मापनीय नहीं है।

बोनस पढ़ें :Generate_series का उपयोग करके PostgreSQL में गुम तिथियों को कैसे भरें

ROW_NUMBER() के बिना PostgreSQL (<8.4) में पंक्ति संख्या कैसे प्राप्त करें

यदि आप PostgreSQL <8.4 का उपयोग करते हैं, तो row_number() हो सकता है कि इसमें विंडो फंक्शन उपलब्ध न हो। उस स्थिति में, आपको सेल्फ-जॉइन की मदद से PostgreSQL में पंक्ति संख्या प्राप्त करनी होगी। इसके लिए यह प्रश्न है।

postgres=# SELECT    count(*) rownum, foo.*
           FROM      sales foo
           JOIN      sales bar
              ON (foo.order_date <= bar.order_date)
           GROUP BY  foo.order_date, foo.sale
           ORDER BY  rownum
           ;
 rownum | order_date | sale
--------+------------+------
      1 | 2020-04-10 |  220
      2 | 2020-04-09 |  250
      3 | 2020-04-08 |  300
      4 | 2020-04-07 |  215
      5 | 2020-04-06 |   25
      6 | 2020-04-05 |  200
      7 | 2020-04-04 |  230
      8 | 2020-04-03 |  150
      9 | 2020-04-02 |  125
     10 | 2020-04-01 |  210

PostgreSQL में पंक्ति संख्या प्राप्त करने के बाद, आप नीचे दिखाए गए तालिका में अपने डेटा की रिपोर्ट करने और अपनी टीम के साथ साझा करने के लिए PostgreSQL रिपोर्टिंग टूल का उपयोग कर सकते हैं।

यदि आप PostgreSQL डेटाबेस से चार्ट, डैशबोर्ड और रिपोर्ट बनाना चाहते हैं, तो आप Ubiq को आज़मा सकते हैं। हम 14-दिन का निःशुल्क परीक्षण प्रदान करते हैं।

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल में प्राथमिकताओं को कैसे कार्यान्वित करें (पोस्टग्रेज)

  2. PostgreSQL WHERE क्लॉज में कॉलम उपनाम स्वीकार नहीं करता है

  3. रेल + पोस्टग्रेस में मनमाने समय अंतराल द्वारा रिकॉर्ड गिनने का सबसे अच्छा तरीका

  4. PostgresPlus Advanced Server 9.3Beta में नई Oracle-संगतता सुविधाएँ

  5. row_to_json . के साथ पुनरावर्ती क्वेरी को पोस्टग्रेज करता है