본문 바로가기

SQL 코딩 입문

다른 쿼리, 같은 결과

1. 4주차

일주일에 한 번으로는 부족한 것 같아, 오늘도 강의 듣기 시작.

어제 들었던 강의 내용이 아직 머릿속에 남아 있어서, 복습 없이 바로 4주차 시작해도 이해하기 수월하다.

역시 공부는 매일 해야 된다.

 

3주차 마지막 강의부터 농도가 짙어진 느낌이다.

강의 영상은 15~20분으로 동일하지만, 5분 보는데 30분 정도 걸린다.

퀴즈를 미리 풀고 답변 확인하는 패턴도 동일하지만, Subquery 배우기 시작하면서 쿼리 구조가 복잡해지고, 퀴즈 하나당 1시간은 기본이다.

 

당연히 정답 화면과 같은 결과가 나오면, 성취감도 더 크다.

 

2. 질문

강의에 나온 쿼리를 따라 적고, 돌렸으나 결과가 다르게 나왔다.

잘못 적은 부분이 있는지 열심히 숨은 그림 찾기를 열심히 했지만, 없었다.

처음으로 질문할 시간이다.

 

두 개의 다른 쿼리

결론적으로 결과가 다르게 나오는 게 맞다.

 

첫 번째 inner join 쿼리는 users 테이블에 orders 테이블을 붙였으므로,

1명의 유저가 카카오페이로 여러 번 지불(order) 한 결과를 모두 포함하고 있는 것이다.

두 번째 subquery 쿼리는 orders 테이블에서 일단 카카오페이로 지불한 유저를 불러온 후

users 테이블과 붙였으므로, 유니크한 유저를 조회한 것이다.

 

훌륭한 강의 덕분에, 내가 쿼리 실행 순서를 잘 이해하고 있는 것을 확인했다.

처음에는 무엇을 물어봐야 하는지도 몰랐다면, 이제는 쿼리 결과를 보고 '왜 이렇게 나왔을까' 생각해 볼 수 있다.

아는 만큼 질문할 수 있다.

 

3. 과정

Subquery 첫 번째 퀴즈 시작.

직전에 배운 순서대로 코드를 짰고, 10분 만에 성공했고, 기쁜 마음으로 강의를 다시 틀었고, 정답도 맞았다.

다음 퀴즈를 대비해 마음의 준비를 했으나, 예상과는 다르게 같은 결과값을 얻는 다른 방법에 대한 설명이 이어졌다.

 

다른 쿼리, 같은 결과

Subquery 안에 Subquery가 있을 수 있다.

따라서 쿼리를 누가 봐도 알아볼 수 있게 잘 정리해서 적는 것이 중요하다.

내가 이유 없이 코딩에 끌렸던 이유를 찾은 것 같다.

 

4. 깨달음

내가 없어도 상황 파악이 가능하고, 누가 봐도 '이건 잘했다' 싶을 정도의 표준이 되고 싶다.

아직은 짧은 경력이지만, 내가 업무를 하면서 추구했던 가치이자 목표이다.

 

코딩에 대해서 몰랐을 때 보이는 화면은, 오와 열을 맞추어 정렬된 영어 문자들이었다.

코딩도 영어, 일본어, 중국어와 같은 하나의 언어라는 생각이기 때문에, 내가 문법만 알면 읽을 수 있을 것 같았다.

 

이제는 문법을 조금 배웠는데, 코딩에서 추구하는 기본 규칙이 내 생각과 많이 비슷한 것 같다.

그래서 코딩에 대해서 몰랐지만, 이유 없이 끌렸던 것 같다.

 

규칙을 배우기 시작했고, 이후 누군가가 내가 짠 코드를 읽을 수도 있으므로, 기본 규칙을 잘 지켜야겠다.
내가 가장 자신 있는 것이기도 하다.

'SQL 코딩 입문' 카테고리의 다른 글

SQL 중급 : 1일차  (0) 2024.03.20
완강, 또 다른 시작  (0) 2021.05.05
쉼표, 작지만 큰 차이  (0) 2021.05.01
연결, 과정의 재미  (0) 2021.04.24
복습, 또 다른 시작  (0) 2021.04.24