[MS- SQL] 한방에 두개의 범위 데이타 그룹바이 걸기
하나의 데이타 테이블에서 두개의 컬럼의 각각 범위로 조회를 한방에 해서
각각의 그룹바이를 취하는 방법...
역시 공부한 보람이 있다눈..
아래 그림에서 보다싶이 원본데이타에서
범위를 지정해서 범위내 데이타에 대해 컬럼 값을 1로 치환 하고
그 데이타를 그룹바이 걸어서 각각 값을 구하는 방법임.
declare @table table
(
[Cnt] int,
[ret] int,
[plan] int
)
insert into @table values(1, 1, 6 );
insert into @table values(1, 2, 7 );
insert into @table values(1, 3, 8 );
insert into @table values(1, 4, 9 );
insert into @table values(1, 5, 10 );
insert into @table values(1, 6, 11 );
insert into @table values(1, 7, 12 );
insert into @table values(1, 8, 13 );
select * from @table
SELECT CNT, CASE WHEN 4 <= RET AND RET <= 7 THEN 1 ELSE 0 END RET, CASE WHEN 6 <= [PLAN] AND [PLAN] <= 10 THEN 1 ELSE 0 END PL
FROM @TABLE
WHERE RET BETWEEN 4 AND 7 OR [PLAN] BETWEEN 6 AND 10
SELECT ISNULL(SUM( CASE WHEN RET = 1 THEN CNT ELSE 0 END ),0) RETSUM , ISNULL(SUM( CASE WHEN PL = 1 THEN CNT ELSE 0 END ),0) PLANSUM
FROM(
SELECT CNT, CASE WHEN 4 <= RET AND RET <= 7 THEN 1 ELSE 0 END RET, CASE WHEN 6 <= [PLAN] AND [PLAN] <= 10 THEN 1 ELSE 0 END PL
FROM @TABLE
WHERE (RET BETWEEN 4 AND 7 OR [PLAN] BETWEEN 6 AND 10)
)K
'# 7) 데이타베이스 > Ms-Sql' 카테고리의 다른 글
[ms-sql] Xml <--> DataTable 변환 쿼리... (0) | 2010.12.31 |
---|---|
[MS-SQL]쿼리에 대한 성능 비교 해보기.. (0) | 2010.11.05 |
[MS-SQL] 누적 계산에 사용한 쿼리... (0) | 2010.10.23 |
[MS-SQL] SELECT 쿼리.. (0) | 2010.10.23 |
[ MS-SQL ] 간단한 쿼리인데 3개의 Row에 대해 계산해서 한행 추가 (0) | 2010.10.23 |