각 부서에서 문서를 작성할때 문서마다 형식이 있고(type 1, 2 이런식으로 )
그형식마다 기준매수를 정해 놓고 기준매수대로 작성했을때는 0, 초과했을때는 초과된매수를 적어줍니다.
부서명 type page
총무 1 0
총무 1 3
총무 1 1
총무 2 0
총무 2 0
총무 2 4
총무 2 5
이렇게 데이터가 들어간다고 했을때
부서이름 type1총건수 type1기준이내건수 type1초과건수 type2총건수 type2기준이내건수 type2초과건수
총무 3 1 2 4 2 2
이런식으로 데이터를 뽑고 싶은데
select dept_name
,'type1 총건수 : ' || count(decode(type,1,1)) as type1_total
,'type1 기준이내 : ' || count(decode(page,0,decode(type, 1, 1))) as type1_기준이내
,'type2 총건수 : ' || count(decode(type,2,1)) as type2_total
,'type1 기준이내 : ' || count(decode(page,0,decode(type, 2, 1))) as type2_기준이내
from test
where dept_name='총무부'
group by dept_name ;
이렇게 하면 우선
부서이름 type1총건수 type1기준이내건수 type1초과건수 type2총건수 type2기준이내건수 type2초과건수
총무 3 1 4 2
이렇게 나오는데여 초과건수를 어떻게 뽑아야 할지 ^^: 우선 타입이 1 인것을 찾고 그중에서 page가 0 이 아닌것의
count 를 해야한는데 count(decode(page,0,decode(type, 1, 1),0,1)) 이렇게 하면 될꺼라 생각했는데
결과가 안나오더라구여 ㅡㅡㅋ 총건수에서 기준이내 건수를 빼도 되지만 그냥 쿼리로서 해결해 보고 싶은데
고수님들의 조언 부탁드립니다.