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

MySQL कॉलम में केवल एक बार आने वाले मानों की गिनती कैसे प्राप्त करें?

MySQL में GROUP BY ... HAVING COUNT(*) = 1 का उपयोग करके आप उन मानों को ढूंढ सकते हैं जो कॉलम में केवल एक बार आते हैं, फिर उनकी गिनती कर सकते हैं। यह अद्वितीय घटनाओं, असामान्य मानों, या डेटा गुणवत्ता जांच के लिए उपयोगी है।

उदाहरण तालिका बनाना

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

डुप्लिकेट और अद्वितीय नामों के साथ डेटा डालना

mysql> INSERT INTO DemoTable VALUES 
    -> ('Larry'), ('Larry'), ('Sam'), ('Chris'), ('Sam'), 
    -> ('Mike'), ('Sam'), ('Larry'), ('Mike'), ('Mike'), 
    -> ('Carol'), ('Robert');

सभी रिकॉर्ड देखना

mysql> SELECT * FROM DemoTable;

आउटपुट:

+--------+
| Name   |
+--------+
| Larry  |
| Larry  |
| Sam    |
| Chris  |
| Sam    |
| Mike   |
| Sam    |
| Larry  |
| Mike   |
| Mike   |
| Carol  |
| Robert |
+--------+

केवल एक बार आने वाले नामों की गिनती

mysql> SELECT COUNT(Name) FROM (
    ->   SELECT Name FROM DemoTable 
    ->   GROUP BY Name 
    ->   HAVING COUNT(*) = 1
    -> ) AS Appear_First_Time;

आउटपुट:

+-------------+
| COUNT(Name) |
+-------------+
| 3           |
+-------------+

व्याख्या:

  1. आंतरिक क्वेरी GROUP BY Name से प्रत्येक नाम के लिए पंक्तियों को समूहित करती है
  2. HAVING COUNT(*) = 1 केवल उन समूहों को रखता है जिनकी गिनती 1 है (Chris, Carol, Robert)
  3. बाहरी COUNT(Name) इन अद्वितीय नामों की गिनती करता है → 3

अद्वितीय नामों की सूची देखने के लिए:

SELECT Name FROM DemoTable 
GROUP BY Name 
HAVING COUNT(*) = 1;

आउटपुट: Chris, Carol, Robert

  1. - MySQL में टेबल कॉलम में डुप्लिकेट मानों की संख्या गिनें

    GROUP BY HAVING के साथ डुप्लिकेट गिनना किसी कॉलम में कौन से मान डुप्लिकेट हैं और उनकी कितनी बार पुनरावृत्ति हुई है, यह जानने के लिए GROUP BY के साथ 1 का उपयोग करें। टेबल और डेटा CREATE TABLE DemoTable( Data INT ); Query OK, 0 rows affected (0.98 sec) INSERT INTO DemoTable VALUES(80); Query

  1. - विशिष्ट कॉलम मानों के लिए एकल MySQL क्वेरी में एकाधिक काउंट प्राप्त करें

    इसके लिए, आप विशिष्ट कॉलम के लिए पैरामीटर मान के साथ एग्रीगेट फंक्शन SUM() का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1790 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(20), Score int ); Query OK, 0 rows affected (0.94 sec) इन्सर्ट कमा

  1. - MySQL में ENUM कॉलम से केवल 'NO' मानों की गणना करें

    MySQL में ENUM कॉलम पर सशर्त गणना के लिए बूलियन अभिव्यक्ति का योग (SUM(condition)) उपयोग कर सकते हैं। MySQL में TRUE = 1 और FALSE = 0 होता है। टेबल बनाएं mysql> CREATE TABLE DemoTable1829 ( Name VARCHAR(20), isTopper ENUM(YES,NO) ); डेटा डालें mysql> INSERT INTO DemoTable1829 VALUES(