<USER_INFO> & <ONLINE_SALE> 테이블 구조
<문제>
<문제 풀이>
SELECT YEAR(SALES_DATE) AS YEAR,
MONTH(SALES_DATE) AS MONTH,
GENDER,
COUNT(DISTINCT A.USER_ID) AS USER
FROM USER_INFO AS A
JOIN ONLINE_SALE AS B
ON A.USER_ID = B.USER_ID
WHERE GENDER IS not null
GROUP BY 1,2,3
ORDER BY 1,2,3 ASC
판매일과 성별로 결과셋을 정렬하고 그 정렬 컬럼별로 구매 회원 수를 집계하는 문제이다.
판매일의 날짜를 위해 SELECT 절에 날짜 함수를 이용하였다.
젠더는 그냥 0과 1로 나타내었다. (만약 다른값으로 보여달라하면 case 구문 이용!)
구매 회원수의 값을 구하기 위해 처음엔 그냥 count 함수를 사용하였지만, 같은 유저가 2번 구매 했을 경우의 수를 위해 DISTINCT를 붙여서 작성해야한다.
* DISTINCT : 컬럼 또는 함수내 값에 대해 중복 값을 제거 하고 싶을 경우 DISTINCE를 붙여 사용
'IT > SQL' 카테고리의 다른 글
[MySQL] 프로그래머스 - 우유와 요거트가 담긴 장바구니 (0) | 2024.01.25 |
---|---|
[MySQL] 프로그래머스 - 서울에 위치한 식당 목록 출력하기 (0) | 2024.01.25 |
[MySQL] 프로그래머스 - 취소되지 않은 진료 예약 조회하기 (0) | 2024.01.24 |
[MySQL] 프로그래머스 - 5월 식품들의 총매출 조회하기 (0) | 2024.01.24 |
[MySQL] 프로그래머스 - 식품분류별 가장 비싼 식품의 정보 조회하기 (0) | 2024.01.24 |