문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/131532
SELECT
YEAR(B.SALES_DATE) AS YEAR,
MONTH(B.SALES_DATE) AS MONTH,
A.GENDER,
COUNT(DISTINCT B.USER_ID) AS USERS
FROM USER_INFO A
JOIN ONLINE_SALE B
ON A.USER_ID = B.USER_ID
WHERE A.GENDER IS NOT NULL
GROUP BY YEAR(B.SALES_DATE), MONTH(B.SALES_DATE), A.GENDER
ORDER BY YEAR(B.SALES_DATE), MONTH(B.SALES_DATE), A.GENDER;
GROUP BY 절에서 YEAR와 MONTH는 직접 계산된 값이기 때문에 계산된 컬럼의 별칭을 사용할 수 없다.
대신 YEAR(B.SALES_DATE)와 MONTH(B.SALES_DATE)로 지정해 주어야 한다.
COUNT(DISTINCT B.USER_ID): 중복된 USER_ID가 여러 건일 경우
고유한 사용자 수를 정확히 세기 위해 DISTINCT 키워드를 추가한다.
320x100
'PRACTICE > SQL' 카테고리의 다른 글
[MySQL] 4단계 9. 주문량이 많은 아이스크림들 조회하기 (0) | 2025.02.05 |
---|---|
[MySQL] 4단계 8. 우유와 요거트가 담긴 장바구니 (0) | 2025.02.04 |
[MySQL] 4단계 6. 저자 별 카테고리 별 매출액 집계하기 (0) | 2025.02.01 |
[MySQL] 4단계 5. 서울에 위치한 식당 목록 출력하기 (0) | 2025.01.31 |
[MySQL] 4단계 4. 취소되지 않은 진료 예약 조회하기 (0) | 2025.01.30 |