늅늅
248
2017-09-13 18:38:40.0 작성 2017-09-14 07:51:28.0 수정됨
2
171

오라클 쿼리 그룹 바이 쿼리 질문


안녕하세요~ 늅늅 입니다.~~ 쿼리 짜는데 도움이 필요 해서 이렇게 글을 올립니다.

----------- 데이터 ------------------

company_cd age gender_flag
9999 11 M
9999 20 F
9999 22 M
9999 23 F
9999 40 F
9999 60 F
9999 50 F
9999 10 M
9999 90 M
----------- 데이터 ------------------

오라클 DB이고요 데이터는 특별한게 없습니다. 제가 원하는 쿼리 결과는 

------------------- 원하는 결과 --------------
COMPANY_CD AGE 남성   여성
9999 ETC                 1   0
9999                20대         212   2222
9999 30대이상                 5233  532
9999 10대         523   5
9999 10대만         53   3
------------------- 원하는 결과 --------------

---------------- 쿼리------------------
SELECT MI.COMPANY_CD, MI.AGE, COUNT(*) AS CNT
FROM (
SELECT AI.COMPANY_CD,
CASE 
WHEN AI.AGE BETWEEN 0 AND 9 THEN '10대만'
WHEN AI.AGE BETWEEN 10 AND 19 THEN '10대'
WHEN AI.AGE BETWEEN 20 AND 29 THEN '20대'
WHEN AI.AGE >= 30 THEN '30대이상'
ELSE 'ETC' END AS  AGE
FROM (
SELECT 
MB.COMPANY_CD,  MB.AGE ,MB.GENDER_FLAG
FROM TM_MEMBER MB
WHERE MB.COMPANY_CD = 800609 
               
) AI
) MI
GROUP BY MI.COMPANY_CD, MI.AGE
        ;
---------------- 쿼리------------------


여기까지 쿼리를 작성 했는데요. 그뒤로 어떻게 작성 해야 할지 삽질중이네요
선배님들 도움이 필요 합니다~~~~ __)


0
0
  • 답변 2

  • fx
    847
    2017-09-13 19:13:03.0

    안쪽 SQL 문에

    gender_flag 가 M 일때 1이고 아니면 0인 컬럼 하나

    gender_flag 가 F 일때 1이고 아니면 0인 컬럼 하나씩  2개를 추가하고


    바깥쪽 SQL문에서 각각 컬럼을 SUM 하면 될 것 같습니다.





    1
  • 늅늅
    248
    2017-09-13 19:51:01.0

    oh~~ 감사 합니다 .해결 했습니다.~

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.