Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL SELECT स्टेटमेंट में ROW_NUMBER() का उपयोग करके रो इंडेक्स (रैंक) कैसे जनरेट करें

ROW_NUMBER() विंडो फंक्शन के साथ रो इंडेक्स जनरेट करना

MySQL 8.0+ में रो इंडेक्स या रैंक जनरेट करने के लिए ROW_NUMBER() विंडो फंक्शन का उपयोग करें। आइए पहले एक टेबल बनाते हैं:

mysql> CREATE TABLE DemoTable (
    Name VARCHAR(40)
);

रिकॉर्ड्स इन्सर्ट करें:

mysql> INSERT INTO DemoTable VALUES ('Chris');
mysql> INSERT INTO DemoTable VALUES ('Chris');
mysql> INSERT INTO DemoTable VALUES ('Chris');
mysql> INSERT INTO DemoTable VALUES ('Robert');
mysql> INSERT INTO DemoTable VALUES ('Robert');
mysql> INSERT INTO DemoTable VALUES ('Adam');
mysql> INSERT INTO DemoTable VALUES ('Adam');
mysql> INSERT INTO DemoTable VALUES ('Adam');
mysql> INSERT INTO DemoTable VALUES ('Adam');

सभी रिकॉर्ड्स देखें:

mysql> SELECT * FROM DemoTable;

आउटपुट:

+--------+
| Name   |
+--------+
| Chris  |
| Chris  |
| Chris  |
| Robert |
| Robert |
| Adam   |
| Adam   |
| Adam   |
| Adam   |
+--------+

डुप्लिकेट नामों के लिए रैंक सेट करने के लिए क्वेरी:

mysql> SELECT Name, ROW_NUMBER() OVER (PARTITION BY Name) AS `Rank`
    FROM DemoTable;

आउटपुट:

+--------+------+
| Name   | Rank |
+--------+------+
| Adam   | 1    |
| Adam   | 2    |
| Adam   | 3    |
| Adam   | 4    |
| Chris  | 1    |
| Chris  | 2    |
| Chris  | 3    |
| Robert | 1    |
| Robert | 2    |
+--------+------+

व्याख्या:

  • PARTITION BY Name: परिणाम सेट को नाम के आधार पर पार्टीशन (समूहों) में विभाजित करता है
  • ROW_NUMBER(): प्रत्येक पार्टीशन के भीतर क्रमिक संख्या (1 से शुरू) असाइन करता है
  • डिफ़ॉल्ट रूप से, प्रत्येक पार्टीशन के भीतर पंक्तियों का क्रम अनिर्दिष्ट होता है (आमतौर पर इन्सर्शन ऑर्डर)

नोट: ROW_NUMBER() MySQL 8.0 और बाद के संस्करणों में उपलब्ध है। पुराने संस्करणों के लिए, आपको यूजर-डिफाइंड वेरिएबल्स का उपयोग करना होगा।

  1. - MySQL में पंक्ति कैसे हटाएं? DELETE स्टेटमेंट

    MySQL में पंक्ति हटाने के लिए DELETE का उपयोग करें। टेबल बनाएं mysql> create table DemoTable ( -> CustomerId INT NOT NULL AUTO_INCREMENT PRIMARY KEY, -> CustomerName VARCHAR(100), -> CustomerAge INT -> ); Query OK, 0 rows affected (1.30 sec) रिकॉर्ड्स डालें mysql>

  1. - क्या MySQL क्वेरी में SELECT NULL स्टेटमेंट का उपयोग कर सकते हैं?

    हां, हम MySQL क्वेरी में SELECT NULL स्टेटमेंट का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable ( Name varchar(100) ); Query OK, 0 rows affected (0.49 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable values(Chris)

  1. - MySQL क्वेरी: अधिकतम और न्यूनतम वेतन वाली पंक्ति चुनें

    MySQL में अधिकतम और न्यूनतम वेतन वाली पंक्तियों को एक साथ चुनने के लिए, सबक्वेरी के साथ MIN(), MAX() और UNION ALL का उपयोग करें। टेबल बनाएं: mysql> create table DemoTable ( -> EmployeeName VARCHAR(20), -> EmployeeSalary INT -> ); Query OK, 0 rows affected (0.70 sec) रि