240406_TIL

J Lee·2024년 4월 6일
0

TIL을 적는 취지에 맞게,
글을 예쁘게 편집하는 데 시간을 많이 쓰지 않기로 했다.
깊이 알아야 할 건 길게 적되 아닌 것들은 간단하게 짚고만 넘어가기로.

SQL 코드카타 51번
간단한 left join 문제.
from 뒤에 기준이 될 테이블을 뭘로 써야 할지,
문제를 잘 보고 생각해 볼 것.

SQL 코드카타 53번
서브쿼리를 써서 풀어야 하나? 라고 생각해서
오랜 시간 삽질했지만 사실 그럴 필요가 없었던 문제.
간단하게 group by와 having을 쓰면 해결할 수 있었다.
내 약점 중 하나가 가끔씩 지나치게 복잡하게 생각하는 경향이 있다는 건데, 그러다가 이렇게 제 꾀에 걸리는 일이 생기더라.
단순하게 문제를 해결할 수 있다면 그게 베스트다.

SQL 코드카타 55번
문제 자체는 어려울 게 없었지만
전화번호에 하이픈 처리하는 걸 오랜만에 접했다.
모든 번호가 01012345678 처럼 10자리로 되어있었기 때문에
left, mid, right를 써서 3 / 4 / 4로 쪼개고
그 사이마다 하이픈을 넣은 후 concat으로 합쳤다.
더 복잡하게 처리하는 방식도 있긴 한 모양인데,
그보다는 더 간단한 방법이 있을지가 궁금하다.

SQL 코드카타 58번
테이블 3개를 연결하는 삼중 조인join.
테이블 2개 연결과 기본적인 원리는 동일하다.

SQL 코드카다 59번
아직 해결 못 한 문제다.
이거 붙잡고 있다가 시간과 집중력을 너무 많이 썼다.
머리가 좀 맑아지고 나면 다시 잡아봐야지.

SQL 강의에서 배웠던 것.

  • substr 함수를 쓸 때, substr(컬럼, 시작할 글자, 불러올 글자 수)의 형태로 쓰는 게 일반적이다.
  • 이 때 '불러올 글자 수'를 생략하고 substr(컬럼, 시작할 글자)만 적게 되면, 시작할 글자 이후의 모든 문자를 다 불러온다.
  • '불러올 글자 수' 자리에 아주 큰 숫자를 적는 것도 방법이지만, 아예 생략해버리는 게 안전빵(?)인 것 같다.
  • if 조건을 쓰는 법은 엑셀의 if 함수와 거의 비슷하다. 두 가지 이상의 분기를 탈 때는 case when을 쓰는 게 유리하지만 하나의 조건 & 나머지 케이스를 처리할 때는 if를 쓰는 게 효율적일 것 같다. case when과 if를 중첩해서 동시에 여러 경우의 수를 커버하거나 조건+연산 처리를 하는 것도 가능.

오늘 TIL은 여기서 끝.

profile
기본기를 소홀히 하지 말자

0개의 댓글

관련 채용 정보