안규 공부방

MS-SQL > Group by

등록일 : 2017-06-30 17:00 조회수 : 92,886

1. Group by    
          
테이블명:table1 

num     part
-----------
1           0
10          0
11          1
12          2
13          3
17          1
18          0
19          2
20          3
22          2
23          0
24          1
27          0
----------
part가 0,1,2,3 이렇게 들어가 있습니다. 각각의 part가 0,1,2,3마다 가장 큰 num의

수에 관련된 모든 값들을 뽑아내 려고합니다. 위의 예로 보자면은 결과는 

num         part
-----------
20               3
22               2
24               1
27               0
------------     

이렇게 나오겠지요. 
    
select part,number=max(num) from table1 group by part
    

2. Having

GROUP BY 로 묶인 값들에 조건을 붙이고 싶다면? 

select number,idx,total FROM 테이블명 GROUP BY idx HAVING sum(total) >= 30 

위의 쿼리는 idx란 인덱스 필드를 기준으로 그룹이 묶여져 있다... 그러나, 이중 total의 합계가 30이상인 값들만 출력을 시켜준다. 
※ 혹시 도움이 되셨다면 댓글에 한마디 남겨주세요!
작성자   비밀번호
자동글 방지     (자동글 방지 기능입니다.)
내용   댓글달기 
이메일 문의 : cak0280@nate.com  
Copyright 2000 By ENTERSOFT.KR All Rights Reserved.