[70] 부트캠프 TIL - 본캠프 51일차

2024. 11. 4. 23:21부트캠프 TIL

728x90

1. 프로그래머스 사용

1-1)  sql 문제 : 자동차 대여기록에서 대여중/대여가능 여부 구분하기

ㄴ 문제 : 회원정보 테이블과 상품 판매정보 테이블에서 년,월, 성별 별로 상품을 구매한 회원 수를 집계하는 sql문을 작성해주세요. 결과는 년,월,성별을 기준으로 오름차순 정렬해주세요. 이때 성별 정보가 없는 경우 결과에서 제외해주세요.

 

문제풀이)

1) 문제를 읽고 필요한 조건들을 체크한다

- 년,월,성별,회원명수 다 컬럼지정명이고, 필요한 조건들로 구성해야한다.

 

2) 성별 정보가 없는 경우 결과 제외

- is not null을 사용해서 gender의 결과가 비어있는 값들은 제외시킨다. 

 

3) 년,월, 성별 기준

- group by로 년,월,성별을 그룹화해야한다. (YEAR, MONTH 함수를 사용해서 판매일의 형식을 맞춘다.)

4) 년,월, 성별 오름차순

- order by desc를 활용해야함.

 

5) 최종 완성 쿼리문

-

SELECT 
YEAR(a.SALES_DATE) AS YEAR,
MONTH(a.SALES_DATE) AS MONTH,
b.GENDER,
COUNT(DISTINCT(b.USER_ID)) AS USERS
FROM ONLINE_SALE a LEFT JOIN USER_INFO b ON a.USER_ID = b.USER_ID
WHERE b.GENDER IS NOT NULL
GROUP BY 1,2,3
ORDER BY 1,2,3 ASC

-  YEAR와 MONTH로 판매일을 년과 월을 구해온다.

-  회원USER_ID를 중복제거 후 COUNT()집계함수를 사용하여 회원 수를 구한다.

-  각 테이블의 USER_ID로 JOIN을 한다.

-  GENDER 데이터를 IS NOT NULL로 빈값은 제외시킨다.

- 년,월,성별을 GROUP BY와 ORDER BY로 그룹화와 정렬을 해준다.

 

2. Spring 2차 조별 프로젝트 시작

1) 담당파트 Postman 테스트 API 및 API 명세 세팅 완료
2) 담당파트 패키지구조 세팅 완료
3) 1차 작업 완료(가게관리 api 6개 작업완료)

4) 보강 작업_1 완료(jwt토큰 활용 작업 - 본인가게만 수정, 본인가게만 폐업, 본인가게3개까지만 생성되도록)

5) 보강 작업_2 완료(수정, 폐업시 테이블에 존재하는 가게만 접근되도록)

작업 API 명세서

 

깃 작업별 이슈

 

프로젝트 ERD

728x90