2010-04-29 6 views
2

대부분의 것은 나는 다음과 같은 테이블이있는 데이터베이스를 얻을 수 있습니다. 내가 max(count(skillID)) 일을 시도 sqlserver 당신이 집계 함수에 대한 집계 함수를 할 수 없다고 말했다. 다른 아이디어?SQL 쿼리

미리 감사드립니다.

답변

2

시도이 :

SELECT TOP 1 
    SkillID, s.Description,COUNT(SkillID) AS CountOf 
    FROM EmployeeSkills e 
     INNER JOIN Skills s ON e.SkillID=s.SkillID 
    GROUP BY SkillID, s.Description 
    ORDER BY 3 DESC 
당신에게 기술에 대한 설명을 제공합니다
2

이 나타나는 횟수와 상단 SkillsId를 반환합니다

SELECT TOP 1 SkillID, COUNT(SkillID) 
FROM EmployeeSkills 
GROUP BY SkillID 
ORDER BY COUNT(SkillID) DESC 
+0

감사합니다.하지만 각 사람이 몇 번이나 등장하는지 알 필요가 없습니다. 대부분의 직원이 가지고있는 기술을 되 찾을 필요가 있습니다. – chama

+0

@chama - 답변이 업데이트되었습니다. – Oded

0
SELECT s.Description, COUNT(*) from EmployeeSkills es 
    INNER JOIN Skills s on s.SkillID = es.SkillID 
GROUP BY s.Description ORDER BY COUNT(*) DESC 

, 얼마나 많은 직원들이 가지고 있습니다. 그런 다음 기술의 이름을 가져가 사용할 수 있습니다

SELECT TOP 1 SkillID, COUNT(SkillID) 
    FROM EmployeeSkills 
GROUP BY SkillID 
ORDER BY COUNT(SkillID) DESC 

: 스킬 ID를 반환합니다

+1

당신은 아마 더 EmployeeSkills 말이지에서이 SELECT s.Description, COUNT (*) 같은 것을 원하는 INNER는 COUNT (*) DESC – Jay

+0

그는에 의해 s.Description 주문 s.SkillID = es.SkillID 그룹에 스킬의 가입 주문에 대해서는 언급하지 않았지만, 당신이 옳았고 편집했습니다. –

0

다음 쿼리는 가장 사용됩니다.

+0

@ Justin - 질문은 MySQL이 아닌 SQL Server에 대한 것입니다. – Oded