मैं एक तालिका में रिकॉर्ड्स के कुल # और गिनती की कुल # गणना करना चाहता हूं जो कुछ शर्तों से मेल खाते हैं। मैं दो अलग-अलग क्वेरी के साथ इन कर सकते हैं:दो एसक्यूएल COUNT() प्रश्न?
SELECT COUNT(*) AS TotalCount FROM MyTable;
SELECT COUNT(*) AS QualifiedCount FROM MyTable
{possible JOIN(s) as well e.g. JOIN MyOtherTable mot ON MyTable.id=mot.id}
WHERE {conditions};
वहाँ एक क्वेरी में इन गठबंधन करने के लिए इतना है कि मैं एक पंक्ति में दो क्षेत्रों पाने के लिए एक रास्ता है?
SELECT {something} AS TotalCount,
{something else} AS QualifiedCount
FROM MyTable {possible JOIN(s)} WHERE {some conditions}
यदि नहीं, तो मैं दो प्रश्नों जारी कर सकते हैं और उन्हें एक सौदे में लपेट ताकि वे संगत कर रहे हैं, लेकिन मैं एक साथ यह करने के लिए उम्मीद कर रहा था।
संपादित करें: मैं परमाणुता के बारे में अधिक चिंतित हूं; यदि दो उप-चयन बयानों की आवश्यकता है तो यह तब तक ठीक है जब तक कोई आईएनएसईआरटी कहीं से आ रहा है, यह दो प्रतिक्रियाओं को असंगत नहीं बनाता है।
संपादित 2: CASE उत्तर उपयोगी हैं लेकिन मेरे विशिष्ट उदाहरण में, शर्तों में एक और तालिका के साथ जॉइन शामिल हो सकता है (उल्लेख करने के लिए भूल गया कि मेरी मूल पोस्ट में, क्षमा करें) तो मुझे लगता है कि यह दृष्टिकोण काम नहीं करेगा ।
आप किस प्रकार का डेटाबेस उपयोग कर रहे हैं? – Andomar
MySQL लेकिन मैं इसे सामान्य रूप से जानना चाहता हूं अगर यह बहुत सरल है –
संबंधित लेकिन समाधान के लिए नहीं: आप बड़ी टेबल के लिए गणना प्राप्त करने के लिए भी उपयोग कर सकते हैं। SQLTALC_FOUND_ROWSFROM MyTable चुनें; चुनें FOUND_ROWS(); SQLTALC_FOUND_ROWSFROM MyTable जहां {शर्तों} चुनें; चुनें FOUND_ROWS(); –