'8월 2일' 칠십일곱 번째 기록 [TIL]

가은·2024년 8월 2일
0

I Learned [본 캠프]

목록 보기
116/135
post-thumbnail

👩‍🏫 오늘의 출석

❓칠십일곱 번째, 9 to 9을 해 본 소감❓

오전에는 중간발표 관련 발제를 듣고 이후에는 어제 계속 에러가 나던 부분 때문에 튜터님을 찾아갔다. 그렇게 2시간에 걸쳐 2가지 문제 중 한 문제를 해결했고, 다른 한 문제는 일단 원인이 무엇인지는 파악했다! 그리고 처음 해보는 백엔드 관련 아키텍처 만들기! 그리고 발표 자료 정리하면서 오늘 하루 끝!

📑오늘 학습한 내용

처음 만들어보는 아키텍처!

🧩 오늘의 SQL : 상품을 구매한 회원 비율 구하기 🧩

문제 : USER_INFO 테이블과 ONLINE_SALE 테이블에서 2021년에 가입한 전체 회원들 중 상품을 구매한 회원수와 상품을 구매한 회원의 비율(=2021년에 가입한 회원 중 상품을 구매한 회원수 / 2021년에 가입한 전체 회원 수)을 년, 월 별로 출력하는 SQL문을 작성해주세요. 상품을 구매한 회원의 비율은 소수점 두번째자리에서 반올림하고, 전체 결과는 년을 기준으로 오름차순 정렬해주시고 년이 같다면 월을 기준으로 오름차순 정렬해주세요.

SELECT YEAR, MONTH, COUNT(*) AS PUCHASED_USERS,
	ROUND((COUNT(*)/ (SELECT COUNT(*)
					FROM USER_INFO WHERE YEAR(JOINED) = 2021)), 1) AS PUCHASED_RATIO
FROM (
    SELECT DISTINCT YEAR(S.SALES_DATE) AS YEAR, MONTH(S.SALES_DATE) AS MONTH, U.USER_ID
    FROM ONLINE_SALE S
    JOIN USER_INFO U ON S.USER_ID = U.USER_ID AND YEAR(JOINED) = 2021
) A
GROUP BY YEAR, MONTH
ORDER BY YEAR, MONTH

💬 기술 면접 준비

  1. 쿼리 최적화에 대해 설명해주시고 방법에 대해 설명해주세요.
  2. DB 로직 최소화를 하려면 어떻게 해야 할까요?

0개의 댓글