2010-06-21 31 views
5

Datenbank/SQL-Neuling hier.Liste Anzahl der Zeilen pro Feld Wert in SQL

Ich habe eine Tabelle mit einer Spalte namens "EmployeeID". Ich möchte eine Abfrage, die für jede eindeutige employeeID die Anzahl der Zeilen zurückgibt, die diese ID enthalten. Ich hoffe, es ist klar, was ich versuche zu tun, und jemand wird helfen können!

ich es eine Rolle, glaube nicht, sollte aber nur für den Fall, ich bin mit MS SQL Server 2008.

+0

Mit Blick auf die Antwort, verwendet eine Menge Leute DISTINCT. Gibt es einen Vorteil in diesem Fall? Ist es schneller? –

+0

@David Nur eine Antwort verwendet "DISTINCT", es ist nicht erforderlich, da die Semantik der Abfrage bedeutet, dass nur 1 Zeile pro Mitarbeiter zurückgegeben wird. –

+0

Ich weiß, was DISTINCT bedeutet. Mein Punkt war dies: Wird es nicht nutzlose Berechnung generieren, um eine DISTINCT zu verwenden, wenn sie nicht benötigt wird. Als ich kommentierte, gab es 2, wenn nicht 3 Antworten mit DISINCT. Scheint, als ob einige seit dem geändert wurden. –

Antwort

12

Simple SQL

select EmployeeId,count(*) 
from YourTable 
Group by EmployeeId 
+1

Perfekt! Ich wusste nichts über das Keyword "Gruppe nach". Danke für die Hilfe. –

+0

pure code danke – ROR

+0

@ josephj1989 was ist mit dem Rest der Felder zu zeigen. Beispiel: Wählen Sie *, EmployeeId, count (*) von YourTable Group von EmployeeId –

2

Diese den Trick tun sollten:

SELECT employeeID, COUNT(employeeID) FROM Employees GROUP BY employeeID 
4

Verwendung:

SELECT t.employeeid, 
     COUNT(*) AS num_instances 
    FROM TABLE t 
GROUP BY t.employeeid 

C OUNT ist eine Aggregatfunktion, die die Verwendung einer GROUP BY-Klausel erfordert.

2
select count(*) AS RowCount, EmployeeID 
FROM table 
GROUP BY EmployeeID 
-1
SELECT DISTINCT employeeID, 
COUNT(employeeID) AS [Count] 
FROM Employees 
GROUP BY employeeID 
+0

Keine DISTINCT bei der Gruppierung durch den Wert. –

Verwandte Themen