2011-03-25 12 views
9

संभव डुप्लिकेट:
SQL Equivalent of COUNTIF()छानने COUNT अंदर

मैं COUNT ही है, जो मैं न अंदर छानने तंत्र के कुछ प्रकार को शामिल कर सकते हैं में उपयोग करना चाहते हैं या की मिलती है क्वेरी (चूंकि यह बड़ी क्वेरी का हिस्सा है जिसमें अन्य कॉलम भी हैं जिन्हें मैं प्रभावित नहीं करना चाहता हूं और शर्तों में शामिल होना)।

उदाहरण के लिए मैं योग

अंदर मामले का उपयोग कर सकते
SUM(CASE WHEN work_status IN ('V','L') THEN shift_total_hours ELSE 0 END), 

मैं भी COUNT में कुछ इस तरह कर सकते हैं, ताकि मैं मिलेगा विशेष पंक्तियों के लिए गिनती इस तरह केवल

कुछ:

COUNT(CASE WHEN work_status IN ('V','L') THEN <should come in count> ELSE <exclude from count> END) 

बहुत धन्यवाद। हालांकि यह योग में समेकित फ़ंक्शन उपयोग कर रहा है, है प्रभावी रूप से एक सशर्त गिनती क्योंकि प्रत्येक पंक्ति के लिए, आप योग के लिए या तो 1 या 0 जोड़ रहे हैं

SUM(CASE WHEN work_status IN ('V','L') THEN 1 ELSE 0 END) 

यह:

उत्तर

12

तुम बस

COUNT(CASE WHEN work_status IN ('V','L') THEN 1 END) 

उपयोग कर सकते हैं निर्दिष्ट हालत CASE अभिव्यक्ति NULL वापस आती है और COUNT केवल NOT NULL मूल्यों

+2

+1 मायने रखता है मिलान नहीं पंक्तियों के लिए। एक और तरीका रखो, अगर ईएलएसई शाखा छोड़ दी गई है, तो 'ईएलएसई नूल' का अर्थ है। –

5

यह आप क्या चाहते हैं क्या करना चाहिए।

संबंधित मुद्दे