[프로그래머스 Lv4.] 131532번 년, 월, 성별 별 상품 구매 회원 수 구하기 (ORACLE)

2024. 2. 6. 08:44·Coding Test/SQL 고득점 Kit[ORACLE]

문제 설명

다음은 어느 의류 쇼핑몰에 가입한 회원 정보를 담은 USER_INFO 테이블과 온라인 상품 판매 정보를 담은 ONLINE_SALE 테이블 입니다.USER_INFO 테이블은 아래와 같은 구조로 되어있으며 USER_ID, GENDER, AGE, JOINED는 각각 회원 ID, 성별, 나이, 가입일을 나타냅니다.

Column name   Type Nullable
USER_ID INTEGER FALSE
GENDER TINYINT(1) TRUE
AGE INTEGER TRUE
JOINED DATE FALSE

 

GENDER 컬럼은 비어있거나 0 또는 1의 값을 가지며 0인 경우 남자를, 1인 경우는 여자를 나타냅니다.

ONLINE_SALE 테이블은 아래와 같은 구조로 되어있으며, ONLINE_SALE_ID, USER_ID, PRODUCT_ID, SALES_AMOUNT, SALES_DATE는 각각 온라인 상품 판매 ID, 회원 ID, 상품 ID, 판매량, 판매일을 나타냅니다.

Column name   Type Nullable
ONLINE_SALE_ID INTEGER FALSE
USER_ID INTEGER FALSE
PRODUCT_ID INTEGER FALSE
SALES_AMOUNT INTEGER FALSE
SALES_DATE DATE FALSE

 

동일한 날짜, 회원 ID, 상품 ID 조합에 대해서는 하나의 판매 데이터만 존재합니다.


문제

USER_INFO 테이블과 ONLINE_SALE 테이블에서 년, 월, 성별 별로 상품을 구매한 회원수를 집계하는 SQL문을 작성해주세요. 결과는 년, 월, 성별을 기준으로 오름차순 정렬해주세요. 이때, 성별 정보가 없는 경우 결과에서 제외해주세요.


예시

예를 들어 USER_INFO 테이블이 다음과 같고

USER_ID    GENDER AGE JOINED
1 1 26 2021-06-01
2 NULL NULL 2021-06-25
3 0 NULL 2021-06-30
4 0 31 2021-07-03
5 1 25 2021-07-09
6 1 33 2021-07-14

 

ONLINE_SALE 테이블이 다음과 같다면

ONLINE_SALE_ID USER_ID PRODUCT_ID SALES_AMOUNT SALES_DATE
1 1 54 1 2022-01-01
2 1 3 2 2022-01-25
3 4 34 1 2022-01-30
4 6 253 3 2022-02-03
5 2 31 2 2022-02-09
6 5 35 1 2022-02-14
7 5 57 1 2022-02-18

 

2022년 1월에 상품을 구매한 회원은 USER_ID 가 1(GENDER=1), 4(GENDER=0)인 회원들이고,

2022년 2월에 상품을 구매한 회원은 USER_ID 가 2(GENDER=NULL), 5(GENDER=1), 6(GENDER=1)인 회원들 이므로,

년, 월, 성별 별로 상품을 구매한 회원수를 집계하고, 년, 월, 성별을 기준으로 오름차순 정렬하면 다음과 같은 결과가 나와야 합니다.

YEAR MONTH GENDER  USERS
2022 1 0 1
2022 1 1 1
2022 2 1 2

-- 코드를 입력하세요
SELECT 
    TO_CHAR(O.SALES_DATE, 'YYYY') AS YEAR
    , TO_NUMBER(TO_CHAR(O.SALES_DATE, 'MM')) AS MONTH
    , U.GENDER
    , COUNT(DISTINCT U.USER_ID) AS USERS
FROM ONLINE_SALE O
    LEFT OUTER JOIN USER_INFO U
    ON U.USER_ID = O.USER_ID
WHERE U.GENDER IS NOT NULL
GROUP BY TO_CHAR(O.SALES_DATE, 'YYYY'), TO_CHAR(O.SALES_DATE, 'MM'), U.GENDER
ORDER BY YEAR, MONTH, U.GENDER;
저작자표시 비영리 변경금지 (새창열림)

'Coding Test > SQL 고득점 Kit[ORACLE]' 카테고리의 다른 글

[프로그래머스 Lv4.] 59413번 입양 시각 구하기(2) (ORACLE)  (1) 2024.02.07
[프로그래머스 Lv2.] 59412번 입양 시각 구하기(1) (ORACLE)  (1) 2024.02.06
[프로그래머스 Lv2.] 59041번 동명 동물 수 찾기 (ORACLE)  (1) 2024.02.06
[프로그래머스 Lv2.] 59040번 고양이와 개는 몇 마리 있을까 (ORACLE)  (0) 2024.02.06
[프로그래머스 Lv4.] 131116번 식품분류별 가장 비싼 식품의 정보 조회하기 (ORACLE)  (0) 2024.02.06
'Coding Test/SQL 고득점 Kit[ORACLE]' 카테고리의 다른 글
  • [프로그래머스 Lv4.] 59413번 입양 시각 구하기(2) (ORACLE)
  • [프로그래머스 Lv2.] 59412번 입양 시각 구하기(1) (ORACLE)
  • [프로그래머스 Lv2.] 59041번 동명 동물 수 찾기 (ORACLE)
  • [프로그래머스 Lv2.] 59040번 고양이와 개는 몇 마리 있을까 (ORACLE)
woojin._.
woojin._.
여러가지 개발을 해보며 발생하는 이야기들에 대한 블로그입니다:)
  • woojin._.
    Jin's Dev Story
    woojin._.
  • 전체
    오늘
    어제
    • 분류 전체보기 (829)
      • Tools (25)
        • eGovFrame (3)
        • GeoServer (3)
        • QGIS (2)
        • LabelImg (2)
        • Git (6)
        • GitHub (1)
        • Eclipse (7)
        • Visual Studio (1)
      • Web & Android (121)
        • SpringBoot (37)
        • Three.js (2)
        • Spring Data JPA (9)
        • 스프링 부트 쇼핑몰 프로젝트 with JPA (25)
        • Thymeleaf (4)
        • Spring Security (15)
        • Flutter (29)
      • Programming Language (61)
        • JAVA (27)
        • JavaScript (14)
        • Dart (2)
        • Python (15)
        • PHP (3)
      • Database (43)
        • PostgreSQL (32)
        • MYSQL (7)
        • Oracle (3)
        • MSSQL (1)
      • SERVER (17)
        • TCP_IP (3)
        • 리눅스 (7)
        • AWS (7)
      • Coding Test (445)
        • 백준[JAVA] (108)
        • 프로그래머스[JAVA] (260)
        • 알고리즘 고득점 Kit[JAVA] (3)
        • SQL 고득점 Kit[ORACLE] (74)
      • CS 지식 (49)
        • [자료구조] (14)
        • [네트워크] (12)
        • [데이터베이스] (10)
        • [알고리즘] (9)
        • [운영체제] (4)
      • 기타 (6)
      • 자격증 & 공부 (62)
        • 정보처리기사 (2)
        • SQLD (6)
        • 네트워크관리사 2급 (5)
        • 리눅스마스터 1급 (44)
        • 리눅스마스터 2급 (1)
        • ISTQB (3)
        • 시스템보안 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 태그

    spring
    backjoon
    springboot
    스프링 부트 쇼핑몰 프로젝트 with JPA
    Flutter
    pcce 기출문제
    데이터
    DB
    데이터베이스
    python
    스프링부트
    리눅스
    프로그래머스
    CS지식
    postgresql
    baekjoon
    JPA
    스프링
    시큐리티
    리눅스마스터 1급
    자바
    Linux
    플러터
    Oracle
    CS
    백준
    Java
    Spring Security
    programmers
    리눅스마스터
  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
woojin._.
[프로그래머스 Lv4.] 131532번 년, 월, 성별 별 상품 구매 회원 수 구하기 (ORACLE)
상단으로

티스토리툴바