본문 바로가기

group by3

각 그룹 금액의 합의 비율금액의 합계 쿼리.... 뭐야 -_-;; 여차저차 하여 비율에 따라 그룹의 합을 구하고 각각 그룹의 금액 * 비율 한 금액의 합을 구하는데 그 총계만 가져와야 할 일이 생겼었다. 비율 금액 10 100 10 200 10 300 20 100 20 300 이런 데이터라면 10 600 20 400 이렇게 그룹이 지어지고 600 * 0.1 = 60 400 * 0.2 = 80 요거의 합 60 + 80 = 140 이렇게 나와야 하는 경우다. 혹자는 이렇게 의문을 가질 수도 있다. 각각의 비율 금액을 계산해서 걍 더하면 되지 않느냐고..?? 좋다. 근데 이게 소수점을 안 가지고 있고 절사 금액 이라면 1, 10 단위의 오차가 발생한다. 뭐... 어떤 용도로 사용하고 계산법은 어떻게 나와야 하느냐에 따른 문제지만 참 거지 같다 -_- 그래서 이런 쿼리가 나왔.. 2010. 9. 17.
GROUP BY 절에 DECODE로 된걸 SELECT 절에서 스칼라로 써 먹을 순 없나? group by 에 decode로 들어 간걸 select 절에서 스칼라 쿼리로 써 먹을 수 음나? 라는 문제에 봉착하게 됐다.. 말이 상당히 난해하다. 예제를 보도록 하자. WITH tb1 AS ( SELECT 'A' AS c1 , '1' AS c2 FROM DUAL UNION ALL SELECT 'A' AS c1 , '1' AS c2 FROM DUAL UNION ALL SELECT 'B' AS c1 , '1' AS c2 FROM DUAL UNION ALL SELECT 'C' AS c1 , '1' AS c2 FROM DUAL ), tb2 AS ( SELECT 'A' AS c1 , '곰' AS c2 FROM DUAL UNION ALL SELECT 'B' AS c1 , '개' AS c2 FROM DUAL U.. 2010. 4. 29.
WITH 문에서 테이블을 두개 맹글어 보자. 원래 WITH문 이게 메인이 아닌데.. GROUP BY에 대한 고찰이었음.. =ㅅ= 마땅한 제목이 없어서. ㅋㅋㅋㅋㅋ 1. 테스트 테이블 생성 WITH tb1 AS ( select 'A' as k1 , 1 as qty from dual union all select 'B', 2 from dual union all select 'B', 3 from dual union all select 'C', 1 from dual ), tb2 AS ( select 'A' as b1 , '나무' as b2 from dual union all select 'B', '문어바' from dual union all select 'B', '꼬라바' from dual union all select 'C', '거북이' from dua.. 2009. 3. 13.