2016-05-06 9 views
1

Ich habe Tabelle wie dieseWie eine einzelne Zeile zurückzukehren, von groupped durch Spalten

ID Specified TIN 
----------------- 
1  0 tin1 
2  0 tin1 
3  1 tin1  
4  0 tin2 
5  0 tin3 
6  1 tin3 
7  1 tin3 

Ich brauche Reihen von TIN groupped zu zählen, angegeben Spalten - aber Ergebnis sollte eine Zeile für jede TIN:

TIN ZEROSpecified NOTZEROSpecified 
tin1  2     1 
tin2  0     1 
tin3  1     2 

Wichtiger Hinweis - ich habe nur 2 Werte für angegebene Spalte - 0 und 1

Antwort

6
SELECT TIN, 
SUM(case when Specified=0 then 1 else 0 end) as ZeroSpecified, 
SUM(case when Specified<>0 then 1 else 0 end) as NOTZEROSpecified 
FROM table 
GROUP BY TIN 
+0

Vielen Dank mein Freund! Ich habe vergessen, Summenfunktion) –

+0

Sie müssen den zweiten Fall bearbeiten, das ist nicht korrekt; 'Angegeben <> 1' –

+0

Ja, ich habe bereits korrigiert – Madhivanan

1

recht einfach;

SELECT 
TIN 
,SUM(CASE WHEN Specified = 0 THEN 1 ELSE 0 END) ZEROSpecified 
,SUM(CASE WHEN Specified <> 0 THEN 1 ELSE 0 END) NotZEROSpecified 
FROM TableName 
GROUP BY TIN 
Verwandte Themen