MSSQL
mssql group by 작은팁
스쿠터로세계일주
2011. 4. 6. 14:33
뭐...대부분 알고 있겠지만...혹시나 모르실 분을 위해 정리해둔다.
group by에 대한 상세한 설명은 아니고 그냥 팁 하나다.
예를들어서....일년의 매출액이 있는데 월별매출 총액을 뽑고싶다?
하지만 테이블에는 월을 구분해줄 어떤것도 없다? 단지 구매일 정보(연도-월-일-시간-분-초-..)정도?
수많은 방법중 바로 생각나는 방법이라면 구매일정보를 문자열로 해서 left함수로 잘라서 구분한다? 어떻게?
left함수로 자른 값으로 저장한 테이블을 다시 감싸서 그 값을 구룹으로 묶어서?
예)
select did, sum(amt) as amt from (
select left(CONVERT(CHAR(8), d_date, 112),6) as did,amt from buylist as t1 ) tmp
group by did
맞다...하지만...이 구문은 group by 에 의해서 처음부터 한번에 나올 수 있었던 것이였다...
select left(CONVERT(CHAR(8), d_date, 112),6) as did,amt from buylist as t1 group by left(CONVERT(CHAR(8), d_date, 112),6)
그렇다..group by 는 반드시 그 컬럼의 전체값만을 가지고 할 수 있는 것이 아니고, 그 컬럼의 일 부분만을 가지고도 group by 할 수 있었던 것이다...............모으면 모르고 알면 아는......아웅...