2010-06-21 4 views
5

여기 데이터베이스/SQL 초보자입니다.SQL의 필드 값 당 행 수 표시

"EmployeeID"와 같은 열이있는 테이블이 있습니다. 각 고유 한 employeeID에 대해 해당 ID가있는 행 수를 반환하는 쿼리를 원합니다. 내가 뭘하려고하는지 분명히하고 누군가 도와 줄 방법을 알기를 바랍니다!

나는 그것이 문제가해야한다고 생각하지 않지만, 단지의 경우, 나는이 트릭해야 MS SQL 서버 2008

+0

대답을 보면은, 많은 사람들이 DISTINCT 사용합니다. 이 경우에 사용하면 이점이 있습니까? 더 빠릅니까? –

+0

@David 오직 하나의 대답 만이 'DISTINCT'를 사용합니다. 질의의 의미 체계가 Employee 당 1 행만 반환된다는 의미이므로 필수는 아닙니다. –

+0

나는 DISTINCT의 의미를 안다. 내 요점은 : 요청하지 않을 때 DISTINCT를 사용하려면 쓸모없는 계산을 생성하지 않겠는가? 내가 주석을 달았을 때, DISINCT로 3 답이 아니라면 2가있었습니다. 몇 개가 수정 된 것 같습니다. –

답변

12

간단한 SQL을

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

완벽한! 나는 "group by"키워드에 대해 몰랐다. 도와 주셔서 감사합니다. –

+0

순수 코드 감사 – ROR

+0

@ josephj1989 나머지 필드를 표시하는 것은 어떨까요? 예 : select *, EmployeeId, count (*) YourTable에서 그룹 by EmployeeId –

2

을 사용하고 있습니다 :

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

사용 :

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

C OUNT는 집계 함수이며 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

값으로 그룹화 할 때 DISTINCT가 필요하지 않습니다. –