Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एक ही कॉलम पर कई बार mysql और क्लॉज

इसे आजमाएं:

SELECT property_id FROM amenities
WHERE amenity_name IN ('parking', 'elevator')
GROUP BY property_id 
HAVING COUNT(amenity_name) >= 2

ये रहा क्या हो रहा है...

सबसे पहले, संपत्ति आईडी की सूची प्राप्त करें जिनमें वे सुविधाएं हैं जिनमें आपकी रुचि है:

SELECT property_id FROM amenities WHERE amenity_name IN ('parking', 'elevator')

फिर केवल उन संपत्ति आईडी को शामिल करने के लिए सूची को संकीर्ण करें जिनके पास एक से अधिक सुविधाएं हैं। संपत्ति_आईडी के आधार पर समूहन परिणामों को उन अद्वितीय समूहों में बंडल करता है जिनके आधार पर वे संपत्ति_आईडी से संबंधित होते हैं। फिर, हम बस प्रत्येक समूह में amenity_names की संख्या की गणना करते हैं और जांचते हैं कि यह 2 या अधिक है या नहीं।

GROUP BY property_id HAVING COUNT(amenity_name) >= 2

उपरोक्त कोड में एक धारणा यह है कि आपके पास एक ही amenity_name एक संपत्ति_आईडी से एक से अधिक बार संबद्ध नहीं होगा। इससे संबंधित मुद्दों को खत्म करने के लिए, HAVING . बदलें DISTINCT . को शामिल करने के लिए क्लॉज डुप्लिकेट को हटाने के लिए, लेकिन इसे तब तक न जोड़ें जब तक आपको इसकी आवश्यकता न हो।

GROUP BY property_id HAVING COUNT(DISTINCT(amenity_name)) >= 2



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql कनेक्टर के साथ ऑटोरेकनेक्ट विकल्प कैसे सेट करें c++

  2. PHP:तालिका नाम रखने के लिए एक चर का उपयोग करना, और प्रश्नों में उस चर का उपयोग करना

  3. JSON ऑब्जेक्ट बनाते समय कॉलम नामों का उपयोग कैसे करें, पायथन

  4. एक दृश्य कोडनिर्देशक में क्वेरी परिणाम प्रदर्शित करने में असमर्थ

  5. एक ही तालिका में विशिष्ट मानों के लिए कॉलम मान को COUNT पंक्तियों में अपडेट करें