https://school.programmers.co.kr/learn/courses/30/lessons/131532#qna
1. 주의 : count(distinct) 로 회원수를 구해야하는 문제!!
-- 코드를 입력하세요
-- 의류 쇼핑몰에 가입한 회원 정보를 담은 USER_INFO
-- 온라인 상품 판매 정보를 담은 ONLINE_SALE 테이블
-- 동일한 날짜, 회원 ID, 상품 ID 조합에 대해서는 하나의 판매 데이터만 존재합니다. : 중복없다는 뜻
SELECT date_format(sales_date, '%Y') as 년,
date_format(sales_date, '%m') as 월,
gender as 성별,
count(distinct(c2.user_id)) as 회원수
from USER_INFO as c1 inner join ONLINE_SALE as c2 on c1.user_id=c2.user_id
where gender is not null
group by 년,월,성별
order by 년,월,성별
2. 오답
SELECT date_format(sales_date, '%Y') as 년,
date_format(sales_date, '%m') as 월,
gender as 성별,
count(c2.user_id) as 회원수
from USER_INFO as c1 inner join ONLINE_SALE as c2 on c1.user_id=c2.user_id
where gender is not null
group by 년,월,성별
order by 년,월,성별
# 참고
YEAR(o.SALES_DATE) AS YEAR, MONTH(o.SALES_DATE) AS MONTH
DATE_FORMAT(A.SALES_DATE, "%Y") AS YEAR, DATE_FORMAT(A.SALES_DATE, '%m') AS MONTH
SELECT YEAR(o.SALES_DATE) AS YEAR, MONTH(o.SALES_DATE) AS MONTH, u.GENDER, COUNT(distinct o.USER_ID) AS USERS
FROM ONLINE_SALE o
JOIN USER_INFO u ON o.USER_ID=u.USER_ID
WHERE u.GENDER IN (0,1)
GROUP BY YEAR, MONTH, GENDER
ORDER BY YEAR ,MONTH, GENDER
'「SQL초급떼기' 카테고리의 다른 글
코딩테스트 연습GROUP BY입양 시각 구하기(1) (0) | 2023.04.02 |
---|---|
코딩테스트 연습GROUP BY가격대 별 상품 개수 구하기 (0) | 2023.04.02 |
코딩테스트 연습GROUP BY진료과별 총 예약 횟수 출력하기 (0) | 2023.04.02 |
코딩테스트 연습GROUP BY카테고리 별 도서 판매량 집계하기 (0) | 2023.04.02 |
[프로그래머스고득점kit]코딩테스트 연습GROUP BY즐겨찾기가 가장 많은 식당 정보 출력하기(level3) (0) | 2023.03.31 |
댓글