2010-08-11 16 views
28

में स्थिति के आधार पर गणना करें क्या कोई जानता है कि मैं शर्त के आधार पर SQL सर्वर में गिनती कैसे कर सकता हूं।SQL सर्वर

उदाहरण:

मैं तालिका में नाम 'प्रणाली' के साथ रिकॉर्ड, और कुल caseid रिकॉर्ड के लिए एक स्तंभ संख्या कैसे कर सकते ??

ग्राहक तालिका

userid  caseid  name 
1   100  alan 
1   101  alan 
1   102  amy 
1   103  system 
1   104  ken 
1   105  ken 
1   106  system 

परिणाम के नीचे की तरह प्रदर्शित होगा:

UseeID TotalcaseID TotalRecordsWithSystem 
1   7    2 
+0

आपको 'WHERE name =' system'' का उपयोग क्यों नहीं करना चाहिए? – stomy

उत्तर

64

उपयोग योग/मामला ...

SELECT 
    COUNT(*), --total 
    SUM(CASE WHEN name = 'system' THEN 1 ELSE 0 END) --conditional 
FROM 
    myTable 
+1

ओह पुराना अच्छा एसयूएम केस ... हमेशा इतना उपयोगी, हमेशा भूलना इतना आसान है। धन्यवाद! –

9

मुझे लगता है कि वह परिणामों में उपयोगकर्ता आईडी चाहता था

SELECT 
    userid, 
    COUNT(*) as TotalcaseID, --total 
    SUM(CASE WHEN name = 'system' THEN 1 ELSE 0 END) as TotalRecordsWithSystem 
FROM 
    myTable 
group by userid 
2
select 
userid, 
count('x') as TotalCaseID, 
count(case when name = 'system' then 'x' else null end) as TotalRecordsWithSystem 
from CustomerTable 
group by userid