[SQL]프로그래머스 - 년, 월, 성별 별 상품 구매 회원 수

2023. 6. 9. 10:42· DB/SQL

 ✅문제

https://school.programmers.co.kr/learn/courses/30/lessons/131532

 

✅풀이

[나의 풀이]

1. 두 테이블을 USER_ID 기준으로 조인한 후, 성별이 null이 아닌 것만 조회
2. 이후 SALES_DATE를 년 기준으로, 같다면 월기준으로, 같다면 성별 기준으로 그룹화하여 중복 삭제하면서
3. USER_ID를 카운트 한다. 이때 같은 년,월에 중복되는 USER_ID가 있다면 카운트 제외
4. 이후 년,원,성별 순으로 카운트

SELECT  YEAR(O.SALES_DATE) as YEAR, MONTH(O.SALES_DATE) as MONTH , U.GENDER, count(distinct U.USER_ID ) as USERS
from USER_INFO U join ONLINE_SALE O 
on U.USER_ID = O.USER_ID 
where  U.GENDER IS NOT NULL
group by YEAR(O.SALES_DATE) , MONTH(O.SALES_DATE), U.GENDER
order by YEAR(O.SALES_DATE) , MONTH(O.SALES_DATE), U.GENDER

 

 

✅피드백

1. IS NULL, IS NOT NULL 

수정 전)

GENDER 값이 0,1,null 중에 null이 아닌 것만 조회해야 하는데, 처음에 IN연산자를 활용했다.

가독성도 안좋고 값을 일일히 다 따져야 하는 번거로운이 있다.

where U.GENDER IN (0,1) -- gender가 null인지를 파악하기 위해 0,1,null 모든 값을 다 따져야 함

수정 후)

null인지 여부만 파악하면 되도록 수정, 더 가독성도 좋아졌다.

where  U.GENDER IS NOT NULL -- 더 명확한 코드, null인지 아닌지만 판단하면 된다.

 

2. 다중 group by 로직

year가 같다면 그 중 month별로 쪼개고, 또 month가 같다면 gender별로 쪼개서 그룹화하는 것임

 

'DB > SQL' 카테고리의 다른 글

[SQL]프로그래머스 - 우유와 요거트가 담긴 장바구니  (0) 2023.06.08
[SQL]변수  (0) 2023.05.31
[SQL] 데이터 형식, 형변환 (mysql)  (0) 2023.05.31
[SQL]프로그래머스 - 자동차 평균 대여 기간 구하기  (0) 2023.05.31
[SQL] 행 입력, 수정, 삭제 CRUD  (0) 2023.05.30
'DB/SQL' 카테고리의 다른 글
  • [SQL]프로그래머스 - 우유와 요거트가 담긴 장바구니
  • [SQL]변수
  • [SQL] 데이터 형식, 형변환 (mysql)
  • [SQL]프로그래머스 - 자동차 평균 대여 기간 구하기
journey-dev
journey-dev
journey-dev
journey-dev
journey-dev
전체
오늘
어제
  • 분류 전체보기 (63)
    • 프론트엔드 (17)
      • JS (8)
      • React (8)
      • vue (9)
      • Typescript (2)
    • 개발서적 (1)
      • 코어 자바스크립트 (0)
      • 프론트엔드 성능 최적화 가이드 (1)
    • CS (4)
      • Docker (0)
      • 자료구조&알고리즘 (2)
      • 네트워크 (2)
    • DB (11)
      • SQL (11)
    • GIT (0)
    • GIS (3)
    • 개발일기 (0)
    • ing (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 일단 시작해라. 나중에 완벽해지면 된다.

인기 글

태그

  • 리액트 복기하기!

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
journey-dev
[SQL]프로그래머스 - 년, 월, 성별 별 상품 구매 회원 수
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.