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

MySQL में GREATEST/LEAST से दो कॉलम में जोड़ी की घटनाएं गिनें

दो कॉलम में मानों की जोड़ी (क्रम की परवाह किए बिना) की घटनाएं गिनने के लिए GREATEST() और LEAST() फ़ंक्शन के साथ GROUP BY का उपयोग करें।

उदाहरण: नाम जोड़े की घटनाएं गिनना

1. टेबल बनाएं

mysql> CREATE TABLE DemoTable (
    -> Name1 VARCHAR(20),
    -> Name2 VARCHAR(20)
    -> );

2. डेटा डालें

mysql> INSERT INTO DemoTable VALUES('John', 'Adam');
mysql> INSERT INTO DemoTable VALUES('Chris', 'David');
mysql> INSERT INTO DemoTable VALUES('Robert', 'Mike');
mysql> INSERT INTO DemoTable VALUES('David', 'Chris');  -- उल्टा क्रम
mysql> INSERT INTO DemoTable VALUES('Mike', 'Robert');  -- उल्टा क्रम

3. डेटा देखें

mysql> SELECT * FROM DemoTable;
+--------+--------+
| Name1  | Name2  |
+--------+--------+
| John   | Adam   |
| Chris  | David  |
| Robert | Mike   |
| David  | Chris  |
| Mike   | Robert |
+--------+--------+

4. जोड़ी घटनाएं गिनें

mysql> SELECT GREATEST(Name1, Name2), LEAST(Name1, Name2), COUNT(*) AS Occurrences
    -> FROM DemoTable
    -> GROUP BY GREATEST(Name1, Name2), LEAST(Name1, Name2);

5. परिणाम

+-----------------------+--------------------+-------------+
| GREATEST(Name1,Name2) | LEAST(Name1,Name2) | Occurrences |
+-----------------------+--------------------+-------------+
| John                  | Adam               | 1           |
| David                 | Chris              | 2           |
| Robert                | Mike               | 2           |
+-----------------------+--------------------+-------------+

कैसे काम करता है

  • GREATEST(a,b) - वर्णानुक्रम में बड़ा मान
  • LEAST(a,b) - वर्णानुक्रम में छोटा मान
  • दोनों जोड़कर क्रम-स्वतंत्र कुंजी बनाते हैं
  • GROUP BY इस कुंजी पर समूह बनाता है

संख्याओं के लिए

SELECT GREATEST(Val1, Val2), LEAST(Val1, Val2), COUNT(*)
FROM DemoTable
GROUP BY GREATEST(Val1, Val2), LEAST(Val1, Val2);

उपयोग के मामले

  • द्विदिश संबंध विश्लेषण (मित्रता, संदेश)
  • ग्राफ एज गिनती
  • डुप्लिकेट जोड़ी पहचान
  1. - शीर्ष दो उच्चतम स्कोर खोजने के लिए MySQL क्वेरी

    MAX() और GROUP BY के साथ प्रति आईडी उच्चतम स्कोर प्राप्त करना इसके लिए एग्रीगेट फंक्शन MAX() का उपयोग करें। पहले टेबल बनाएं: create table DemoTable1383 ( Id int, PlayerScore int ); Query OK, 0 rows affected (0.90 sec) रिकॉर्ड डालें: insert into DemoTable1383 values(200,57); Query OK, 1 row affecte

  1. - MySQL में DATEDIFF() का उपयोग करके समान पंक्तियों के अलग-अलग कॉलम से दो दिनांकों के बीच दिनों की गणना करना

    MySQL DATEDIFF() के साथ दो दिनांक कॉलम के बीच अंतर एक ही पंक्ति में दो दिनांक कॉलम के बीच दिनों की संख्या की गणना करने के लिए, सीधे उन कॉलम पर DATEDIFF() का उपयोग करें। यह रोजगार अवधि, परियोजना अवधि, किराया अवधि आदि के लिए उपयोगी है। उदाहरण: कर्मचारी कार्य दिवस गणना SELECT * FROM DemoTable1471; +-

  1. - MySQL में दो कॉलम के मान गिनें और NULL को बाहर रखें

    COUNT() फ़ंक्शन से NULL मानों को छोड़कर कॉलम मान गिनना COUNT(कॉलम_नाम) स्वचालित रूप से NULL मानों को अनदेखा करता है। दो कॉलम के गैर-NULL मानों का कुल योग पाने के लिए दोनों COUNT को जोड़ें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1975 ( StudentName varchar(20), StudentMarks int ); Q