728x90
https://school.programmers.co.kr/learn/courses/30/lessons/131532?language=oracle
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
2025년 1월 남자는 N명,
2025년 1월 여자는 M명
이런식으로 쿼리를 짜야하는 문제다.
먼저 필요한 정보를 추출한다. 조인으로 user_id 가 같은 것을 뽑자.
그리고 년도, 월, 성별로 그룹화하고 user_id를 카운팅하면 되는 문제다. 하지만 주의해야할 점이 중복된 데이터이다. 왜냐하면 A라는 사람이 1월달에 두번 물건을 구매했을 수도 있기 때문이다. 그래서 중복을 제거하는 DISTINCT 함수를 함께 사용해준다.
-- 코드를 입력하세요
SELECT
TO_CHAR(o.sales_date,'YYYY') AS YEAR,
TO_NUMBER(TO_CHAR(o.sales_date,'MM')) AS MONTH,
u.gender AS GENDER,
COUNT(DISTINCT u.user_id) as USERS
FROM USER_INFO u, ONLINE_SALE o
WHERE u.user_id = o.user_id
AND u.GENDER IS NOT NULL
GROUP BY TO_CHAR(o.sales_date,'YYYY'), TO_CHAR(o.sales_date,'MM'), u.gender
ORDER BY TO_CHAR(o.sales_date,'YYYY'), TO_CHAR(o.sales_date,'MM'), u.gender;
'프로그래머스 풀이 > Lv 4' 카테고리의 다른 글
[프로그래머스 SQL] 주문량이 많은 아이스크림들 조회하기 (ORACLE) (0) | 2025.03.06 |
---|---|
[프로그래머스 SQL] 우유와 요거트가 담긴 장바구니 (ORACLE) (0) | 2025.03.05 |
[프로그래머스 SQL] 저자 별 카테고리 별 매출액 집계하기 (ORACLE) (0) | 2025.03.03 |
[프로그래머스 SQL] 서울에 위치한 식당 목록 출력하기(ORACLE) (0) | 2025.03.03 |
[프로그래머스 SQL] 5월 식품들의 총매출 조회하기 [ORACLE] (0) | 2025.01.25 |