반응형
1
2
3
|
select num, groupname, sum(price * amount) as '비용'
from buyTb1
group by ROLLUP(groupname, num);
|
cs |
중간 NULL로 되어 있는 것이 각 GROUPNAME 별 소 합계를 의미한다.
마지막은 소합계의 합계, 즉 총합계가 나왔다.
1
2
3
4
|
select groupname, sum(price * amount) as '비용'
from buyTb1
group by rollup(groupname);
|
cs |
GROUP BY에서 그룹이름으로 묶어주면 각 그룹 별 소합계, 총 합계만 볼 수 있다.
1
2
3
4
|
select groupname, sum(price * amount) as '비용',
GROUPING_ID(groupname) as '추가행여부'
from buyTb1
group by rollup(groupname);
|
cs
|
데이터인지 합계인지 한눈에 알기 위해서는 GROUPING_ID() 함수를 사용할 수 있다.
GROUPING_ID() 함수의 결과가 0이면 데이터, 1이면 합계를 위해서 추가된 열이다.
이것이 SQL SERVER다 STUDY
반응형
'개발 > DB' 카테고리의 다른 글
[mssql] 값 자동 증가 identity, 시퀀스(sequence) 생성과 사용법 (0) | 2019.03.23 |
---|---|
[mssql] WITH 절 , 비재귀적 CTE (1) | 2019.03.16 |
[mssql] GROUP BY / HAVING 사용법 (0) | 2019.03.16 |
[mssql] 중복제거 DISTINCT 사용법 (0) | 2019.03.02 |
[mssql] 서브쿼리뜻 ANY, ALL 사용법 예제 (0) | 2019.02.25 |