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

MySQL में अंतिम नाम के आधार पर कॉलम काउंट जोड़ें

सेल्फ JOIN के साथ प्रत्येक पंक्ति पर समूह गणना दिखाना

प्रत्येक पंक्ति पर उसके अंतिम नाम की कुल आवृत्ति दिखाने के लिए, उपक्वेरी में GROUP BY LastName करके गणना करें, फिर मूल टेबल से JOIN करें।

टेबल और डेटा

mysql> CREATE TABLE DemoTable (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    FirstName VARCHAR(100),
    LastName VARCHAR(100)
);
Query OK, 0 rows affected (1.00 sec)
mysql> INSERT INTO DemoTable(FirstName,LastName) VALUES('David','Miller');
Query OK, 1 row affected (0.35 sec)
mysql> INSERT INTO DemoTable(FirstName,LastName) VALUES('Carol','Miller');
Query OK, 1 row affected (0.37 sec)
mysql> INSERT INTO DemoTable(FirstName,LastName) VALUES('John','Doe');
Query OK, 1 row affected (0.21 sec)

सभी रिकॉर्ड

mysql> SELECT * FROM DemoTable;
+----+-----------+----------+
| Id | FirstName | LastName |
+----+-----------+----------+
| 1  | David     | Miller   |
| 2  | Carol     | Miller   |
| 3  | John      | Doe      |
+----+-----------+----------+
3 rows in set (0.00 sec)

अंतिम नाम गणना कॉलम जोड़ने की क्वेरी

mysql> SELECT Id, FirstName, LastName, Count 
    FROM DemoTable tbl1 
    JOIN (
        SELECT COUNT(*) AS Count, LastName 
        FROM DemoTable GROUP BY LastName
    ) tbl2 USING(LastName);

परिणाम:

+----+-----------+----------+-------+
| Id | FirstName | LastName | Count |
+----+-----------+----------+-------+
| 1  | David     | Miller   | 2     |
| 2  | Carol     | Miller   | 2     |
| 3  | John      | Doe      | 1     |
+----+-----------+----------+-------+
3 rows in set (0.00 sec)

व्याख्या: उपक्वेरी tbl2 प्रत्येक LastName की गणना करती है (Miller: 2, Doe: 1)। मुख्य क्वेरी USING(LastName) से JOIN करती है, जिससे प्रत्येक पंक्ति पर गणना जुड़ जाती है।

विंडो फंक्शन विकल्प (MySQL 8.0+): SELECT Id, FirstName, LastName, COUNT(*) OVER (PARTITION BY LastName) AS Count FROM DemoTable; अधिक सरल और कुशल।

  1. - MySQL में एक क्वेरी में विशिष्ट रिकॉर्ड (डुप्लिकेट) की घटनाओं को गिनें

    COUNT() एग्रीगेट फ़ंक्शन के साथ GROUP BY का उपयोग करके प्रत्येक विशिष्ट मान की घटनाओं को गिनें। टेबल बनाना और डेटा डालना CREATE TABLE DemoTable ( StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentSubject VARCHAR(40) ); Query OK, 0 rows affected (5.03 sec) INSERT INTO DemoTable(St

  1. - MySQL 8.0 में ROW_NUMBER() विंडो फ़ंक्शन से SELECT क्वेरी में पंक्ति संख्या (रैंक) जोड़ें

    MySQL 8.0+ में ROW_NUMBER() विंडो फ़ंक्शन का उपयोग करके SELECT क्वेरी के परिणाम सेट में क्रमिक पंक्ति संख्या (रैंक) जोड़ सकते हैं। यह पेजिनेशन, रैंकिंग, और पंक्ति पहचान के लिए मानक, घोषणात्मक तरीका है। सिंटैक्स SELECT column_list, ROW_NUMBER() OVER (ORDER BY sort_column [ASC|DESC]) AS Rank

  1. - MySQL में नाम कॉलम से अंतिम स्पेस से पहले का भाग कैसे चुनें?

    MySQL में पूर्ण नाम (FullName) कॉलम से अंतिम स्पेस से पहले का भाग (यानी पहला/मध्य नाम) निकालने के लिए, LEFT(), LENGTH(), LOCATE(), REVERSE() फंक्शन संयोजित करें। उदाहरण: Robert Downey, Jr. → Robert Downey, डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1939 (FullName VARCHAR(20)); डेटा इन्सर्ट