Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Tags
more
Archives
Today
Total
관리 메뉴

기록 블로그

[TIL30] 본문

카테고리 없음

[TIL30]

LHJ_ 2025. 1. 14. 22:35

<TIL 반드시 들어가야 할 내용>

1. 어떤 문제가 있었는지

2. 내가 시도해 본 것들(자세히 쓰기)

3. 어떻게 해결했는지

4. 뭘 새롭게 알았는지(자세히 쓰기)

 

 

어떤 문제가 있었는지

1. 프로그래머스 SQL 76번에서 문제를 잘못 이해해서 첨부터 다시 풀었지만. 해결하지 못했음.

ON과 WHERE의 차이를 정확하게 이해하지 못함

2. 통계 가설 검정 걍 이해 자체를 못했음. 또 회귀 분석? 이해 못했음

3. 오늘 문제는 아니지만 프로그래머스 파이썬 20번 마지막 return을 내가 원하는 값으로 어떻게 해야할지 모르겠었음.

4. 뭔가 또 많이 몰랐는데 아.... 진짜 이제 열심히 써야겠음..

 

내가 시도해 본 것들

USER_INFO 테이블과 ONLINE_SALE 테이블에서

2021년에 가입한 전체 회원들 중 상품을 구매한 회원수와 상품을 구매한 회원의 비율(=2021년에 가입한 회원 중 상품을 구매한 회원수 / 2021년에 가입한 전체 회원 수)을

년, 월 별로 출력하는 SQL문을 작성해주세요.

상품을 구매한 회원의 비율은 소수점 두번째자리에서 반올림하고,

전체 결과는 년을 기준으로 오름차순 정렬해주시고 년이 같다면 월을 기준으로 오름차순 정렬해주세요.

 

→ 단순히 전체수에서 상품을 구매한 전체 수를 나눠주면 된다고 생각했음.

→ 전체수와 상품을 구매한 수의 테이블을 조인하기 위해 count()의 컬럼을 만들고 싶어 윈도우 함수 over()을 씀.

 

하지만 년,월 별의 고유 고객수의 구매율을 확인했어야 했음...

 

 

 

이걸 아는 순간 count(distinct user_id)를 하려고 했지만 윈도우 함수와 distinct는 같이 못 쓴다는 사실을 알게 됨.

멘붕이 오기 시작함. count() 컬럼을 따로 빼내서 계산해야한다는 생각에 사로잡혔음.

 

2.

 

 

함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.

 

순서대로 진행한 후 리스트값을 정수값으로 바꾸는 방법을 모르겠었음.

정수로 바꿔준다 하더라도 \n이 되어 return 값을 하나만 출력함....

 

 

 

 

 

 

 

 

어떻게 해결 됐는지

당근빳다 질문했음. 내가 혼자서 뭘 할 수 있지?

통계는 강의 복습을 다시 처음부터 하고 있음. 복습한 곳까지는 이해했고, 정리하면서 다시 판서 읽어보면 될 듯!

 

뭘 새롭게 알게 됐는지

count() 컬럼을 따로 붙이지 않아도 그 안에서 계산 할 수 있다는 사실을 깨달음..

SELECT에 서브쿼리를 쓰면 되는구나...

 

처음 JOIN할 때 ON절에 조건을 걸어줬더니 2022년에 가입한 사람도 나왔음.

WHERE과 ON을 완전히 똑같은 기능이라고 생각해서 이상했는데, ON은 처음에 테이블을 붙일 때 on 조건인 애들만!!!!!!! 붙고 WHERE의 조건은 테이블의 완성 후 조건인 애들만 남겨둠. 

INNER JOIN 할 때는 둘의 차이가 없지만, LEFT JOIN 할 때는 on 조건이 아닌 애들도 출력이 되기 때문에(LEFT에 있는 테이블 값) WHERE절에 붙여줘야 함.

 

 

 

 

 

 

 

리스트에 있는 값을 for문을 돌려 하나하나 빼준 다음 문자열에 넣으면 리스트도 아니고 \n이 되어있지 않은 값을 얻을 수 있음

문자는 +하면 문자가 옆에 붙는 속성이 있음.

마지막에 출력한 값을 int() 함수로 정수값으로 출력해주면 짜잔~~

 

JOIN 메서드를 사용하는 방법도 존재함

 

 

 

 

 

 

 

 

메서드 sort와... sorted의 존재를 알게 됨..

앞에서 쓴 3개의 for문의 역할을 sort로 해결 가능

sort = 문자열을 내림차순으로 정렬

sorted = 문자열을 내림차순을 정렬 후 값을 return

 

 

 

 

더보기

한번에 몰아서 쓰려 했는데 기억도 안 나고 쓰지도 않고.. 어디에 메모를 해놓던가... 진짜로 til을 열심히 쓰는 방법 밖에 없다.

내일 통계를 다 듣고 통계 정리를 해야겠3