배또가또 2023. 12. 20. 22:37

스파르타 코딩클럽 내일배움캠프 3일차

 

  • 오늘 한 일
    • SQL 코드카타 
    • SQL 코딩테스트 블로그 작성
    • 팀 프로젝트 발표 자료 관련 회의
  • 배운 것
    • SQL : CONCAT_WS, CONCAT
    • HAVING절 활용

팀 프로젝트 노션 발표자료 

https://www.notion.so/B07-d6fd457ccb5d416cb9ceba8e14a75d31

 

(B07) 학습 플랫폼 이용자 리텐션 분석 | Built with Notion

I. 서론

dorian-bellflower-bb8.notion.site

 

 

오늘 풀었던 코테 중에 가장 어려웠던 문제

 

다른 부분은 다 괜찮았는데 HAVING절을 쓰는게 갑자기 기억이 안나서 N건 이상의 로우가 조회되는 ID의  ~ 를 조회하라는 문제들이 대부분  막혔었다. 곰곰히 한시간 가까이를 고민했는데도 생각나지 않아서 검색창에 N건 이상의 로우 조건을 검색했더니 바로 HAVING이 나왔고 그 그 즉시 창 닫고 코드를 적어서 정답을 제출했다.

SELECT USER_ID, 
       NICKNAME,
       CONCAT_WS(' ', CITY, STREET_ADDRESS1, STREET_ADDRESS2) AS '전체주소',
       CONCAT_WS('-', FIRST3, MIDDLE4, FINAL4) AS '전화번호'
FROM 
(
    SELECT U.USER_ID,
           U.NICKNAME, 
           U.CITY, 
           U.STREET_ADDRESS1, 
           U.STREET_ADDRESS2, 
           SUBSTR(U.TLNO, 1, 3) FIRST3,
           SUBSTR(U.TLNO, 4, 4) MIDDLE4,
           SUBSTR(U.TLNO, 8, 4) FINAL4
    FROM USED_GOODS_BOARD B INNER JOIN USED_GOODS_USER U ON B.WRITER_ID = U.USER_ID
    WHERE USER_ID IN (SELECT U.USER_ID 
                      FROM USED_GOODS_BOARD B INNER JOIN USED_GOODS_USER U ON B.WRITER_ID = U.USER_ID
                      GROUP BY 1
                      HAVING COUNT(*)>=3)
    GROUP BY 1
) A
ORDER BY 1 DESC;

 

SQL은 역시 반복숙달인거 같다. 분명 아는 내용이었는데 어떻게 조회해야하지? 하고 생각이 막히는 순간부터 기억이 잘 나지 않는다. 던지면 툭 나올 수 있을 때 까지 계속 하루에 SQL 코드카타 3~4문제씩은 꼬박꼬박 풀고 리뷰해야지


  • 오늘의 이슈
    • 인터넷이 오전에 끊겨서 오전 학습이 불가능했다. 
    • 원래 코딩테스트도 다 오전에 끝내고 복습을 했어야했는데..
    • 다행히도 인터넷이 복구되어서 정상적으로 점심 이후로는 팀프로젝트에 참여할 수 있었다.

  • 느낀점
    • SQL 코딩테스트 문제가 조금씩 어려워지고 있어서 뭔가 실무에서 쓸법한 코드에 근접해지는 거 같다.
    • 팀 프로젝트 노션 발표자료는 스무스하게 만들어지고 있다. 
    • 노션을 다루는 법을 조금 익힐 필요가 있겠다. 노션에서 뭐 하려고 하면 너무 어버버거리게 된다
    • 시각화 툴 공부를 좀 할 필요가 있을 것 같다. -> 팀프로젝트 안하는 시간에 사놓았던 패캠 강의를 듣자