MySQL - अनुरोधित मान से जुड़े एकाधिक मान - mysql, सूची

मेरे पास रिलीज नामक एक टेबल है, जो "संगीत" डेटाबेस का हिस्सा है। तालिका में दो कॉलम होते हैं; cd_id, band_id

मैं सीडी_आईडी और दो सीडी के लिए प्रत्येक सीडी के लिए शामिल बैंड की संख्या सूचीबद्ध करना चाहता हूं band_id एक के साथ जुड़े हुए हैं cd_id मूल्य।

क्या आप इस वाक्यांश को मेरी मदद कर सकते हैं? पहले ही, आपका बहुत धन्यवाद।

उत्तर:

उत्तर № 1 के लिए 1

यह एक कुल है COUNT() के साथ HAVING खंड:

SELECT
cd_id,
count(*) AS numbands
FROM releases
GROUP BY cd_id
HAVING numbands >= 2

The COUNT(*) के साथ युग्मित GROUP BY cd_id की संख्या देता है band_id प्रति cd_id, और आदेश में 2 के साथ रिलीज करने के लिए इन सीमित करने के लिए band_id, ए HAVING खंड निर्दिष्ट करता है numbands (गणना मान को दिया गया उपनाम) >= 2

ध्यान दें, यह मानता है प्रत्येक band_id केवल प्रति एक बार सूचीबद्ध है cd_id. अगर ऐसा नहीं है, तो प्रति cd अद्वितीय बैंड प्राप्त करने के लिए, उपयोग करें

COUNT(DISTINCT band_id) AS numbands

के बजाय COUNT(*) AS numbands


उत्तर № 2 के लिए 1

यह मानते हुए कि रिलीज़ एक ही बैंड को दो बार CD$ID के लिए सूचीबद्ध नहीं करता है

select CD_ID, count(*)
from releases
GROUP BY CD_ID
HAVING count(*) > 1

संबंधित सवाल
सबसे लोकप्रिय