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

PostgreSQL में प्रति समूह अंतिम पंक्ति कैसे प्राप्त करें

कभी-कभी आपको तालिका की अंतिम पंक्ति प्राप्त करने या PostgreSQL में प्रति समूह अंतिम पंक्ति प्राप्त करने की आवश्यकता हो सकती है। यहां बताया गया है कि PostgreSQL में प्रति समूह अंतिम रिकॉर्ड कैसे प्राप्त करें।


तालिका की अंतिम पंक्ति प्राप्त करें

मान लें कि आपके पास निम्न PostgreSQL तालिका है।

postgres=#create table product_sales(product varchar(10),
          order_date date, sale int);

postgres=#insert into product_sales(product, order_date, sale)
values('A','2020-05-01 03:00:00',250),
('B','2020-05-01 05:30:00',350),
('C','2020-05-01 07:45:00',1250),
('A','2020-05-02 02:34:00',450),
('B','2020-05-02 01:24:00',650),
('C','2020-05-02 12:34:00',1050),
('A','2020-05-03 04:00:45',150),
('B','2020-05-03 05:45:00',250),
('C','2020-05-03 09:50:00',1850);

postgres=# select * from product_sales;
 product |      order_date     | sale
---------+---------------------+------
 A       | 2020-05-01 03:00:00 |  250
 B       | 2020-05-01 05:30:00 |  350
 C       | 2020-05-01 07:45:00 | 1250
 A       | 2020-05-02 02:34:00 |  450
 B       | 2020-05-02 01:24:00 |  650
 C       | 2020-05-02 12:34:00 | 1050
 A       | 2020-05-03 04:00:45 |  150
 B       | 2020-05-03 05:45:00 |  250
 C       | 2020-05-03 09:50:00 | 1850

बोनस पढ़ें :PostgreSQL क्रिएट फंक्शन


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

postgres=# select * from product_sales 
           order by order_date desc
           limit 1;
 product |     order_date      | sale
---------+---------------------+------
 C       | 2020-05-03 09:50:00 | 1850

उपरोक्त क्वेरी में, हम टाइमस्टैम्प के अवरोही क्रम में पंक्तियों को क्रमबद्ध करते हैं और LIMIT क्लॉज का उपयोग करके शीर्ष 1 पंक्ति का चयन करते हैं।

बोनस पढ़ें :PostgreSQL स्कीमा बनाएं



प्रति समूह अंतिम रिकॉर्ड प्राप्त करें

प्रति समूह, यानी प्रत्येक उत्पाद की अंतिम पंक्ति प्राप्त करने के लिए यहां SQL क्वेरी है।

postgres=# select distinct on (product) product, order_date, sale
           from product_sales
           order by product, order_date desc;

 product |     order_date      | sale
---------+---------------------+------
 A       | 2020-05-03 04:00:45 |  150
 B       | 2020-05-03 05:45:00 |  250
 C       | 2020-05-03 09:50:00 | 1850

उपरोक्त क्वेरी में, पहले हम पंक्तियों को उत्पाद . द्वारा क्रमबद्ध करते हैं (आरोही) और order_date (अवरोही)। फिर हम प्रति समूह केवल शीर्ष रिकॉर्ड का चयन करने के लिए DISTINCT ON क्लॉज का उपयोग करते हैं, जो कि प्रति समूह अंतिम रिकॉर्ड के अलावा और कुछ नहीं है।

बोनस पढ़ें :PostgreSQL में हिस्टोग्राम कैसे बनाएं

उम्मीद है, अब आप आसानी से PostgreSQL में प्रति समूह अंतिम पंक्ति प्राप्त कर सकते हैं।

Ubiq मिनटों में डेटा को विज़ुअलाइज़ करना और रीयल-टाइम डैशबोर्ड में मॉनिटर करना आसान बनाता है। इसे आज ही आजमाएं!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL स्कीमा बनाएँ

  2. दिल की धड़कन के साथ PostgreSQL के लिए उच्च उपलब्धता को ट्रैक करना

  3. PostgreSQL में डेटा विभाजन के लिए एक गाइड

  4. Postgres/SQL में न्यूनतम/अधिकतम दो पूर्णांक कैसे प्राप्त करें?

  5. क्या किसी जॉइन में टेबल का क्रम मायने रखता है, जब LEFT (बाहरी) जॉइन का उपयोग किया जाता है?