오라클 쿼리 질문드립니다. 0 3 621

by 고쿠 [2020.08.14 15:47:51]


오라클 쿼리 질문드립니다.

 

KIND QTY_1 QTY_2 QTY_3 QTY_4
AA 7 15 8 20
BB 3 25 16 9
CC 10 32 19 11
AB 6 24 17 13
DD 9 4 5 18
CD 16 14 9 15

 

위 표처럼 데이터가있는데 AA랑 AB랑 묶어서 AA한줄로 표시하고

CC랑 CD랑 묶어서 한줄로 표시해서

아래처럼 표현하려고하는데 잘 생각이나지 않아서요...ㅠㅠ

KIND QTY_1 QTY_2 QTY_3 QTY_4
AA 13 39 25 33
BB 3 25 16 9
CC 26 46 28 26
DD 9 4 5 18

 

by pajama [2020.08.14 16:04:30]

우선 이렇게 생각이 나는데요.. 다른 고려사항이 있다면 수정해야겠네요.

WITH T AS (
SELECT 'AA' KIND, 7 QTY_1, 15 QTY_2, 8 QTY_3, 20 QTY_4 FROM DUAL
UNION ALL SELECT 'BB',	3 , 25, 16, 9  FROM DUAL
UNION ALL SELECT 'CC',	10, 32, 19, 11 FROM DUAL
UNION ALL SELECT 'AB',	6 , 24, 17, 13 FROM DUAL
UNION ALL SELECT 'DD',	9 , 4 , 5 , 18 FROM DUAL
UNION ALL SELECT 'CD',	16, 14, 9 , 15 FROM DUAL
)
SELECT MIN(KIND), SUM(QTY_1), SUM(QTY_2), SUM(QTY_3), SUM(QTY_4)
FROM T
GROUP BY SUBSTR(KIND,1,1)
ORDER BY MIN(KIND)

 


by 마농 [2020.08.14 16:21:11]

2개 코드만 고정으로 다른 코드로 대체하면 되는 것인지? (AB -> AA, CD -> CC)
아니면 코드 앞자리만 보고 합치면 되는 것인지? ( A* -> AA, B* -> BB, ...)
기준에 따라 적절하게 DECODE 나 SUBSTR 을 이용해 GROUP BY 하시면 됩니다.
GROUP BY DECODE(kind, 'AB', 'AA', 'CD', CC', kind)
GROUP BY SUBSTR(kind, 1, 1)
 


by 고쿠 [2020.08.14 22:32:38]

DECODE 나 SUBSTR 이용해 GROUP BY하면 되는군요...

감사합니다.^^

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입