-
[Programmers] 년, 월, 성별 별 상품 구매 회원수 구하기 (SQL, JOIN, date_format)Algorithm 2023. 9. 5. 12:14728x90반응형
- 목차
문제 설명.
https://school.programmers.co.kr/learn/courses/30/lessons/131532
다음은 어느 의류 쇼핑몰에 가입한 회원 정보를 담은 USER_INFO 테이블과 온라인 상품 판매 정보를 담은 ONLINE_SALE 테이블 입니다.USER_INFO 테이블은 아래와 같은 구조로 되어있으며 USER_ID, GENDER, AGE, JOINED는 각각 회원 ID, 성별, 나이, 가입일을 나타냅니다.
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, 판매량, 판매일을 나타냅니다.
ONLINE_SALE_ID INTEGER FALSE USER_ID INTEGER FALSE PRODUCT_ID INTEGER FALSE SALES_AMOUNT INTEGER FALSE SALES_DATE DATE FALSE 동일한 날짜, 회원 ID, 상품 ID 조합에 대해서는 하나의 판매 데이터만 존재합니다.
문제 풀이.
SELECT date_format(SALES_DATE, '%Y') as YEAR, date_format(SALES_DATE, '%m') as MONTH, USER_INFO.GENDER, # group_concat(distinct USER_INFO.USER_ID), count(distinct USER_INFO.USER_ID) as USERS from ONLINE_SALE inner join USER_INFO on USER_INFO.USER_ID = ONLINE_SALE.USER_ID where USER_INFO.GENDER is not null group by YEAR, MONTH, USER_INFO.GENDER order by YEAR asc, MONTH asc, USER_INFO.GENDER asc
반응형'Algorithm' 카테고리의 다른 글
[Programmers] 점 찍기 ( 좌표 계산) (0) 2023.09.19 [Programmers] 귤 고르기 (HashMap, PriorityQueue) (0) 2023.09.19 [Programmers] N개의 최소공배수 (유클리드 호제법) (0) 2023.09.05 [Programmers] 조건에 맞는 도서와 저자 리스트 출력하기 (SQL) (0) 2023.08.11 (Java) Programmers 이진 변환 반복하기 (이진수 변환) (0) 2023.07.10