2017-07-21 2 views
0

Code:COUNT (DISTINCT-Ausdruck)?

Select Distinct 
    EE.EMPLOYEE_ID, 
    EE.COLOR, 
    COUNT(DISTINCT EE.COLOR) AS COLOR_COUNT 
FROM #EMPLOYEEINFO EE 

GROUP BY EE.EMPLOYEE_ID, 
     EE.COLOR 

Ich dachte, dieser Code mich pro Mitarbeiter-ID die Anzahl der eindeutigen Farben geben würde. COLOR_COUNT wird jedoch für alle Zeilen als 1 zurückgegeben.

Jede Hilfe wäre großartig, danke!

+0

Bearbeiten Sie Ihre Frage und liefern Sie Beispieldaten und gewünschte Ergebnisse. –

Antwort

1

Wenn Sie die Anzahl der eindeutigen Farben wünschen, beinhalten dann nicht color im group by:

SELECT EE.EMPLOYEE_ID, 
     COUNT(DISTINCT EE.COLOR) AS COLOR_COUNT 
FROM #EMPLOYEEINFO EE 
GROUP BY EE.EMPLOYEE_ID; 

Auch Sie fast nie SELECT DISTINCT brauchen, wenn GROUP BY verwenden.

+0

Gibt es eine Möglichkeit, die Farbe noch auszuwählen? Im Gegensatz zu nur die Zählung zu haben? –

+0

@ArjunArun. . . Es macht keinen Sinn, "die Farbe" zu wählen, wenn Sie die verschiedenen Farben zählen. –