꿈꾸는 개발자의 블로그
[프로그래머스] Oracle - (SQL 고득점 Kit) GROUP BY 년, 월, 성별 별 상품 구매 회원 수 구하기 본문
Algorithm/Programmers
[프로그래머스] Oracle - (SQL 고득점 Kit) GROUP BY 년, 월, 성별 별 상품 구매 회원 수 구하기
aldrn29 2023. 2. 21. 16:54문제
USER_INFO 테이블과 ONLINE_SALE 테이블에서 2) 년, 월, 성별 별로 3) 상품을 구매한 회원수를 집계하는 SQL문을 작성해주세요. 결과는 년, 월, 성별을 기준으로 오름차순 정렬해주세요. 이때, 1) 성별 정보가 없는 경우 결과에서 제외해주세요.
문제 풀이
- USER_INFO와 ONLINE_SALE 테이블을 JOIN한 후, 성별 정보가 없는 경우는 제외하기 위하여 WHERE 조건을 건다.
- 년, 월, 성별 별로 조회하기 위하여 GROUP BY로 묶는다.
- 상품을 구매한 회원수를 구하기 위하여 count 함수로 조회한다. 단 각 회원은 한번씩 카운트 되어야 하기 때문에 DISTINCT로 중복을 제거한다.
전체 코드
SELECT TO_CHAR(SALES_DATE, 'YYYY') AS YEAR, TO_NUMBER(TO_CHAR(SALES_DATE, 'MM')) AS MONTH, GENDER, count(DISTINCT a.USER_ID) AS USERS
FROM USER_INFO a JOIN ONLINE_SALE b
ON a.USER_ID = b.USER_ID
WHERE GENDER IS NOT NULL
GROUP BY TO_CHAR(SALES_DATE, 'YYYY'), TO_CHAR(SALES_DATE, 'MM'), GENDER
ORDER BY 1, 2, 3
728x90
728x90
'Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스] Oracle - (SQL 고득점 Kit) GROUP BY 가격대 별 상품 개수 구하기 (0) | 2023.02.21 |
---|---|
[프로그래머스] Oracle - (SQL 고득점 Kit) GROUP BY 입양 시각 구하기(2) (0) | 2023.02.21 |
[프로그래머스] Oracle - (SQL 고득점 Kit) GROUP BY 입양 시각 구하기(1) (0) | 2023.02.21 |
[프로그래머스] Oracle - (SQL 고득점 Kit) GROUP BY 동명 동물 수 찾기 (0) | 2023.02.21 |
[프로그래머스] Oracle - (SQL 고득점 Kit) GROUP BY 고양이와 개는 몇 마리 있을까 (0) | 2023.02.21 |
Comments