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

MySQL में उन पंक्तियों को कैसे लौटाएं जिनके कॉलम मान समान हैं? GROUP BY और HAVING

इसके लिए GROUP BY क्लॉज़ का उपयोग करें।

टेबल बनाएं

mysql> create table DemoTable (
    -> StudentId int,
    -> StudentMarks int
    -> );
Query OK, 0 rows affected (4.71 sec)

रिकॉर्ड्स डालें

mysql> insert into DemoTable values(23,58);
Query OK, 1 row affected (0.70 sec)
mysql> insert into DemoTable values(25,89);
Query OK, 1 row affected (0.46 sec)
mysql> insert into DemoTable values(26,58);
Query OK, 1 row affected (1.13 sec)
mysql> insert into DemoTable values(28,98);
Query OK, 1 row affected (0.86 sec)

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

mysql> select * from DemoTable;
+-----------+--------------+
| StudentId | StudentMarks |
+-----------+--------------+
| 23        | 58           |
| 25        | 89           |
| 26        | 58           |
| 28        | 98           |
+-----------+--------------+
4 rows in set (0.00 sec)

समान कॉलम मान वाली पंक्तियां लौटाने का क्वेरी

mysql> select StudentMarks from DemoTable
    -> group by StudentMarks
    -> having sum(StudentId=23) > 0 and
    -> sum(StudentId=26) > 0;

आउटपुट:

+--------------+
| StudentMarks |
+--------------+
| 58           |
+--------------+
1 row in set (0.00 sec)

व्याख्या: SUM(StudentId=23) बूलियन अभिव्यक्ति का योग करता है (TRUE=1, FALSE=0)। HAVING क्लॉज़ उन समूहों को फ़िल्टर करता है जहां दोनों StudentId 23 और 26 मौजूद हैं।

  1. - MySQL में REGEXP का उपयोग करके कॉलम मानों में स्ट्रिंग या डिजिट कैसे चेक करें

    REGEXP के साथ स्ट्रिंग और डिजिट मानों को फ़िल्टर करना MySQL में रेगुलर एक्सप्रेशन (REGEXP) का उपयोग करके कॉलम मानों को स्ट्रिंग या डिजिट के आधार पर फ़िल्टर करें। सिंटैक्स: केवल स्ट्रिंग मान (डिजिट नहीं): WHERE yourColumnName NOT REGEXP ^[0-9]+$ केवल डिजिट मान: WHERE yourColumnName REGEXP ^[0-9]+$

  1. - MySQL में समान मान वाली पंक्तियाँ अलग-अलग आईडी के साथ खोजना

    GROUP BY और HAVING से डुप्लिकेट समूह खोजना एक ही मान अलग-अलग आईडी के साथ कितनी बार आता है, यह GROUP BY और HAVING से पता लगाया जा सकता है। तालिका और डेटा (100,Chris), (130,Carol), (100,Chris); क्वेरी: 2 से अधिक बार आने वाले समूह 2; परिणाम +------+-------+---------+ | Id | Name | IdCount | +

  1. - MySQL में एक टेबल से डेटा चुनना जहाँ कॉलम मान दूसरी टेबल से मेल खाएँ

    EXISTS सबक्वेरी से क्रॉस-टेबल मिलान EXISTS सबक्वेरी का उपयोग करके एक टेबल की पंक्तियाँ चुनें जहाँ कॉलम मान दूसरी टेबल के कॉलम मान से मेल खाता हो। पहली टेबल (विषय) (111, MySQL), (112, MongoDB), (113, Java), (114, C), (115, MySQL); दूसरी टेबल (छात्र) (Chris, MySQL), (Bob, MySQL), (Sam, MySQL), (C