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

MySQL में GROUP BY और HAVING का उपयोग करके SELECT क्वेरी को मर्ज कैसे करें?


MySQL में GROUP BY और HAVING का उपयोग करके शर्तों को मर्ज करना

आप GROUP BY और HAVING का उपयोग करके कई शर्तों को पूरा करने वाले समूह ढूंढ सकते हैं।

उदाहरण

टेबल बनाएं:

mysql> create table MergingSelectDemo (
    -> RoomServicesId int,
    -> RoomId int,
    -> ServiceId int
    -> );

डेटा डालें:

mysql> insert into MergingSelectDemo values(10, 10, 10);
mysql> insert into MergingSelectDemo values(20, 10, 20);
mysql> insert into MergingSelectDemo values(30, 10, 30);
mysql> insert into MergingSelectDemo values(50, 10, 50);
mysql> insert into MergingSelectDemo values(110, 20, 20);
mysql> insert into MergingSelectDemo values(120, 20, 30);

कमरा खोजें जिसमें ServiceId 10, 20, 30 सभी हों:

mysql> select RoomId from MergingSelectDemo
    -> where ServiceId IN (10, 20, 30)
    -> group by RoomId
    -> HAVING COUNT(*) = 3;

परिणाम:

+--------+
| RoomId |
+--------+
|     10 |
+--------+

व्याख्या

  1. WHERE ServiceId IN (10, 20, 30): केवल ये तीन सेवा आईडी वाली पंक्तियाँ चुनें
  2. GROUP BY RoomId: RoomId के अनुसार समूह बनाएं
  3. HAVING COUNT(*) = 3: केवल वही समूह जिनमें ठीक 3 पंक्तियाँ हों (यानी सभी तीन सेवाएँ मौजूद हों)

विविधता

यदि डुप्लिकेट सेवा आईडी हो सकते हैं, तो COUNT(DISTINCT ServiceId) = 3 का उपयोग करें।

संबंधित अवधारणा: संबंधपरक विभाजन

यह पैटर्न "सभी शर्तें पूरी करने वाली इकाइयाँ ढूंढना" (Relational Division) के लिए उपयोगी है।

  1. कई वर्ड दस्तावेजों को एक साथ कैसे मर्ज करें कई वर्ड दस्तावेजों को एक साथ कैसे मर्ज करें

    यदि आप वर्ड के भारी उपयोगकर्ता हैं, तो आप शायद उस स्थिति में आए होंगे जहां कई वर्ड दस्तावेजों को एक मास्टर दस्तावेज़ में मर्ज करना सुविधाजनक होगा। भले ही वर्ड में ऐसा करना बहुत मुश्किल नहीं है, यह बहुत सहज भी नहीं है। आप सोचेंगे कि माइक्रोसॉफ्ट ने प्रोग्राम में किसी प्रकार की मर्ज दस्तावेज़ सुविधा श

  1. - MySQL में एकल क्वेरी में कई कॉलम को एक साथ सॉर्ट करना

    GREATEST() फंक्शन का उपयोग करके पंक्ति-वार अधिकतम के आधार पर सॉर्ट करना कई कॉलम सॉर्ट करने के लिए ORDER BY GREATEST() का उपयोग करें। पहले टेबल बनाएं: create table DemoTable1395 ( Value1 int, Value2 int, Value3 int ); Query OK, 0 rows affected (0.79 sec) रिकॉर्ड डालें: insert into DemoTable1395 val

  1. - MySQL में परिणाम समूहित करें और सूची में दिखाएं

    समाधान GROUP BY के साथ ORDER BY का उपयोग करके गणना और क्रमबद्ध करें। सिंटैक्स SELECT yourColumnName, COUNT(*) AS aliasName FROM yourTableName GROUP BY yourColumnName ORDER BY yourColumnName; उदाहरण टेबल बनाएं: INSERT INTO demo7 (first_name) VALUES (John), (David), (John), (Bob), (David), (David),