2010-06-21 18 views
5

database/SQL novice qui.Elenco numero di righe per valore di campo in SQL

Ho una tabella con una colonna denominata, ad esempio "EmployeeID". Voglio una query che, per ogni distinto ID dipendente, restituisca il numero di righe che hanno come ID. Spero sia chiaro cosa sto cercando di fare e qualcuno saprà come aiutare!

Io non credo che dovrebbe avere importanza, ma solo nel caso, sto usando MS SQL Server 2008.

+0

Guardando la risposta, un sacco di gente usi distinti. C'è qualche vantaggio nell'usarlo in questo caso? È più veloce? –

+0

@David Solo una risposta utilizza 'DISTINCT' non è richiesta poiché la semantica della query significa che verrà restituita solo una riga per dipendente. –

+0

So cosa significa DISTINCT. Il mio punto era questo: non genererà un calcolo inutile per usare un DISTINCT quando non è richiesto. Quando ho commentato, c'era 2 se non 3 risposte con DISINCT. Sembra che alcuni siano stati modificati da allora. –

risposta

12

semplice SQL

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

Perfetto! Non conoscevo la parola chiave "raggruppa per". Grazie per l'aiuto. –

+0

codice puro grazie – ROR

+0

@ josephj1989 cosa dire del resto dei campi. per esempio seleziona *, EmployeeId, conta (*) da YourTable Group by EmployeeId –

2

Questo dovrebbe fare il trucco:

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

Usa:

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

C OUNT è una funzione di aggregazione che richiede l'utilizzo di una clausola GROUP BY.

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

Non è necessario DISTINCT quando si raggruppa in base al valore. –

Problemi correlati