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

समान तालिका से दो पंक्तियों की तुलना कैसे करें

कभी-कभी आपको लगातार पंक्तियों की तुलना करने की आवश्यकता हो सकती है, या प्रत्येक पंक्ति की तुलना MySQL तालिका में पिछली पंक्ति से करनी पड़ सकती है। इस लेख में, हम देखेंगे कि सेल्फ-जॉइन का उपयोग करके एक ही टेबल से दो पंक्तियों की तुलना कैसे करें। आप इसका उपयोग लगातार पंक्तियों की तुलना करने या दो पंक्तियों के बीच अंतर प्राप्त करने के लिए कर सकते हैं।


MySQL में लगातार पंक्तियों की तुलना कैसे करें

मान लें कि आपके पास निम्न तालिका है बिक्री (आईडी, आदेश_तिथि, राशि) और राशि कॉलम में कुल संचयी बिक्री डेटा होता है।

mysql> create table sales(id int auto_increment primary key,
 order_date date, amount int);

mysql> insert into sales(order_date, amount)
     values('2020-10-01',100),
     ('2020-10-02',125),
     ('2020-10-03',140),
     ('2020-10-04',160);

mysql> select * from sales;
+------+------------+--------+
| id   | order_date | amount |
+------+------------+--------+
|    1 | 2020-10-01 |    100 |
|    2 | 2020-10-02 |    125 |
|    3 | 2020-10-03 |    140 |
|    4 | 2020-10-04 |    160 |
+------+------------+--------+

बोनस पढ़ें :MySQL में दो कॉलम की तुलना कैसे करें

हमारे उदाहरण में, यदि आप प्रत्येक दिन की गई बिक्री का पता लगाना चाहते हैं तो आपको प्रत्येक पंक्ति के मूल्य की तुलना पिछली पंक्ति के मूल्य से करनी होगी। पिछली पंक्ति के साथ प्रत्येक पंक्ति की तुलना करने के लिए यहां SQL क्वेरी है।

mysql> SELECT
         g1.id, g1.order_date,g1.amount,
         (g2.amount - g1.amount) AS daily_amount
     FROM
         sales g1 INNER JOIN sales g2 ON g2.id = g1.id + 1;
+------+------------+--------+--------------+
| id   | order_date | amount | daily_amount |
+------+------------+--------+--------------+
|    1 | 2020-10-01 |    100 |           25 |
|    2 | 2020-10-02 |    125 |           15 |
|    3 | 2020-10-03 |    140 |           20 |
+------+------------+--------+--------------+

उपरोक्त क्वेरी में, हम एक आंतरिक जॉइन शर्त g2.id=g1.id + 1 का उपयोग करके बिक्री तालिका को स्वयं के साथ जोड़ते हैं जो आपको प्रत्येक पंक्ति की उसकी पिछली पंक्ति से तुलना करने की अनुमति देता है।

बोनस पढ़ें :MySQL में हर नौवीं पंक्ति कैसे प्राप्त करें

कृपया ध्यान दें, यह शर्त इस तथ्य पर निर्भर करती है कि हमारे आईडी कॉलम में लगातार संख्याएं हैं। अधिकांश तालिकाओं में एक ऑटो वृद्धि प्राथमिक कुंजी कॉलम होता है, इसलिए इसे ज्यादातर मामलों में काम करना चाहिए। यदि वे किसी अन्य स्थिरांक से भिन्न हैं, तो आप तदनुसार INNER JOIN शर्त को संशोधित कर सकते हैं।

उम्मीद है, अब आप आसानी से MySQL में एक ही टेबल में दो पंक्तियों की तुलना कर सकते हैं।

Ubiq डेटा की कल्पना करना और रीयल-टाइम डैशबोर्ड में उनकी निगरानी करना आसान बनाता है। 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. लॉकिंग और प्रदर्शन

  2. SQL में प्राथमिक कुंजी कैसे बनाएं

  3. विशेष उद्देश्यों के लिए SQL कर्सर का उपयोग कैसे करें

  4. सब कुछ जो आपको SQL में LIKE ऑपरेटर के बारे में जानना आवश्यक है

  5. बेहतर डेटाबेस डिजाइन के लिए टिप्स