Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 노마드코더
- 버튼 활성화
- ReactNative
- springboot
- Navigation
- 휴대폰 기기
- web view
- 자료구조
- 경우의 수
- React Natvive
- 백준 1992
- 창의충전소
- 티스토리챌린지
- 상속 관계 매핑
- multipart upload
- 완전탐색
- BFS
- react
- 이영직
- 폴더구조
- FlatList
- 오블완
- Project Bee
- React Native
- bfs dfs
- 구현
- 해외 대외활동
- 원복
- 비트마스킹
- service 테스트
Archives
- Today
- Total
유미의 기록들
[프로그래머스] 년, 월, 성별 별 상품 구매 회원 수 구하기 본문
728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/131532
📌 문제
USER_INFO 테이블과 ONLINE_SALE 테이블에서 년, 월, 성별 별로 상품을 구매한 회원수를 집계하는 SQL문을 작성해주세요. 결과는 년, 월, 성별을 기준으로 오름차순 정렬해주세요. 이때, 성별 정보가 없는 경우 결과에서 제외해주세요.
📝 풀이과정
1. JOIN을 통해 `USER_INFO`와 `ONLINE_SALE`의 테이블을 합친다
SELECT * FROM USER_INFO U JOIN ONLINE_SALE O ON U.USER_ID=O.USER_ID;
2. `GENDER`가 NULL인 경우 제외한다
WHERE GENDER IS NOT NULL
3. GROUP BY로 년, 월, 성별 별로 상품을 구매한 회원 수를 집계한다
GROUP BY YEAR(SALES_DATE), MONTH(SALES_DATE), GENDER
4. ORDER BY로 년, 월, 성별 별로 오름차순 정렬한다
ORDER BY YEAR(SALES_DATE),MONTH(SALES_DATE),GENDER
5. COUNT와 DISTINCT로 그룹 내 동일한 USER_ID 값을 제거 시킨 후 카운팅 한다
SELECT YEAR(SALES_DATE) AS YEAR,
MONTH(SALES_DATE) AS MONTH,
GENDER,
COUNT(DISTINCT U.USER_ID) AS USERS
💻 정답 코드
SELECT YEAR(SALES_DATE) AS YEAR,
MONTH(SALES_DATE) AS MONTH,
GENDER,
COUNT(DISTINCT U.USER_ID) AS USERS
FROM USER_INFO U JOIN ONLINE_SALE O ON
U.USER_ID=O.USER_ID WHERE GENDER IS NOT NULL
GROUP BY YEAR(SALES_DATE), MONTH(SALES_DATE), GENDER
ORDER BY YEAR(SALES_DATE),MONTH(SALES_DATE),GENDER;
728x90
반응형
'코딩테스트 기록 > SQL 문제' 카테고리의 다른 글
[프로그래머스] 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 (1) | 2024.08.28 |
---|---|
[프로그래머스] 조건에 맞는 사용자 정보 조회하기 (0) | 2024.08.26 |
[프로그래머스] 재구매가 일어난 상품과 회원 리스트 구하기 (0) | 2024.08.26 |
[프로그래머스] 즐겨찾기가 가장 많은 식당 정보 출력하기 (0) | 2024.08.08 |
Comments