2014-09-28 2 views
2

선택 쿼리에서 일부 선택된 상위 열을 어떻게 그룹화합니까?그룹 일부 열에 대해서만 사용

내가 생각할 수있는 잘못되었지만 쉬운 대답은이 코드입니다.

SELECT TOP 5 brand, name, delivered, count(*) 
From myTB 
Where type = 'jeans' 
Group By brand, name 
Order By Count(*) DESC 

결과는 다음과 같습니다. 위의 결과에서 내가 다른도 thuo이 카운트가 분야별되지 함께 한 후 브랜드 얻을

Brand  name  Delivered Count 
------------------------------------- 
Levis  304 Slim 9/24  44 
Croccer 500 Lose 3/14  22 
Croccer 400 Botcut 4/7  14 
Lee  Botcut 33 5/5  16 
Lee  Slim 44 10/7  12 

(위의 코드가 잘못과 오류를 반환).

나는이 코드로 가장 근접한 것을 시도했다.

SELECT TOP 5 brand, name, delivered, count(*) 
From myTB 
Where type = 'jeans' 
Group By brand, name, delivered 
Order By Count(*) DESC 

하지만 이렇게하면 데이터가 반환됩니다.

Brand  name  Delivered Count 
------------------------------------- 
Levis  304 Slim 9/24  44 
Croccer 500 Lose 3/14  22 
Lee  Botcut 33 5/5  16 
Croccer 400 Botcut 4/7  14 
Lee  Slim 44 10/7  12 

내가 사용하려고하면 "COUNT (*)로 순서를, 브랜드"내가 카운트 값의 순서 regardles 내림차순으로, 어떤 이유로, 브랜드를 얻을. 그것과 같은 이음새는 브랜드 칼럼 만 주문하고 브랜드와 카운트는 주문하지 말아야합니다.

기본 테이블에서 그룹화 할 필요가 있지만 동일한 테이블에서 왼쪽 조인을 시도했지만 올바른 것은 아닙니다. 코드는 정말 혼란 스러웠다. 그래서 나는이 스레드 외부에 남겨 둘 것이다.

내가 얻을 수있는 모든 도움에 감사드립니다.

답변

2

것 같다 t1.test 내림차순으로 T1 순서로이

select TOP 5 t1.* from (SELECT brand, name, delivered, count(*)as 'test' 
From myTB 
Where type = 'jeans' 
Group By brand, name,delivered 

)를보십시오.

select top 5 t1.* from (
    select brand, name, delivered, count(*) 
    from myTB 
    where type = 'jeans' 
    group by brand, name, delivered 
) t1 join (
    select brand, cnt 
    from (
     select brand, cnt, 
     row_number() over (partition by brand order by cnt desc) rn 
     from (select brand, count(*) cnt from myTB group by brand, name, delivered) t1 
    ) t1 
    where rn = 1 
) t2 on t1.brand = t2.brand 
order by t2.cnt desc, t2.brand 
+0

에서 주문을 받았습니다. 이것은 내가 한 일을했다. 나는 그것이 작동하도록 count (*)의 이름을 추가해야만했다. (count (*) AS 숫자) 청바지. 고마워요 FuzzyTree Logged – Slint

0

는 최초의 브랜드 당 최대 수와 브랜드 두 번째로 주문하려는처럼

+0

시도해 보았지만 다음과 같은 오류가 발생합니다. 메시지 1033, 수준 15, 상태 1, 줄 5 TOP, OFFSET 또는 FOR XML을 지정하지 않으면 ORDER BY 절이 뷰, 인라인 함수, 파생 테이블, 하위 쿼리 및 공통 테이블 식에서 유효하지 않습니다. – Slint

+0

내가 지금 답장을 시도해보십시오. 하위 쿼리 –

관련 문제