2014-05-16 6 views
0

을 가진 나는 2 열 MS SQL 절 문제

Item | Category 

Apple  Fruit 
Orange  Fruit 
Potatoes Vegetables 

필요한 출력 : 나는 과일입니다 양의 측면에서 가장 높은 카테고리의 이름을 얻기 위해 노력하고

과일. MySql에서 작동하는 MySql 쿼리를 작성했습니다. 그러나 동일한 쿼리는 MS SQL Server에서 오류를 발생시킵니다. 어떤 힌트를 주시면 감사하겠습니다.

select Cat from (select count(category) as Total,category as cat from test group by category) as S1 group by S1.Total,S1.Cat having max(s1.total) 

실행하면 결과가 비어 있습니다. 내가 얻을

SELECT s2.cats FROM (SELECT s1.cat AS cats, max(s1.counts) AS countings FROM (SELECT count(category) AS counts, category AS cat from test GROUP BY category) AS s1) AS s2 

오류 메시지는 다음과 같습니다 : 메시지 4145, 수준 15, 상태 1, 줄 1 맥락에서 지정된 부울이 아닌 유형의 경우 조건의 표현하지만 비슷한 쿼리는 내가 잘 MySQL을 실행을 생성 '근처'가 예상 됨).

나는 TOP이 같은

+0

당신은 오류 메시지를 게시해야합니다. –

답변

0

뭔가를 사용하지 않으려 ? 꽤 못생긴하지만 Top을 피합니다. 또한, 임의의 것이 아니라 최대 개수를 갖는 모든 항목을 반환합니다. 열 카테고리와

가정 테이블 [음식] :

select category from Food group by Category having COUNT(*) = 
(select max(cnt) from (select COUNT(*) as cnt from Food group by Category) subq)