티스토리 뷰

반응형

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

SQL을 이고잉의 생활코딩에서 강의해주는 것 정도만 간신히 알고있다가, O'REILLY 책 중 한빛미디어에서 번역 출간해준 "Learning SQL" 책으로 완전 초보 딱지는 뗀 것 같다.

기본 내장 함수가 존재하는 등 훨씬 쉬운 방법이 있는데 기억이 안나 뱅뱅 도는 쿼리를 만들어 결과 반환 속도가 늦어지는 일이 가끔 있는데, 그럴 때 이 쿡북을 보면 많이 도움이 될 것 같다.

특히 모 기업 코딩테스트로 출제되었으나 내가 답하지 못했던 문제에 대한 내용도 있었는데..!

그것은 바로 "테이블에서 n개 행 건너뛰기" 였다.

그때 출제된 문제는 시간 흐름 순으로 데이터를 나열하고, 11번째부터의 결과를 출력하는 문제였는데 아마 이 함수를 쓰면 결과가 나오지 않을까 싶다.

 

사용하는 함수는 ROW_NUMBER OVER 와 모듈로 함수(DB2, MySQL, PostgreSQL, Oracle: MOD/SQL Server:%) 두 가지이다.

SELECT ename
FROM(
  SELECT ROW_NUMBER() OVER (order by ename) rn, ename  -- ROW_NUMBER() OVER 함수로 rn 열에 번호 매기기
  FROM emp
) X
WHERE mod(rn, 2) = 1  -- 모듈로 함수로 짝수 행 건너뛰기

이 함수 알았었다면 이직에 성공할 수 있었을까? 모르는 일이다.

총 14개 챕터에 작게는 6개, 많게는 21개의 SQL 소스코드가 있고 주제도 나름 잘 번역되어있어서 궁금한 내용은 바로 찾아볼 수 있게 구성되어있다.

SQL을 손에서 놓게 되지 않는다면 Learning SQL 책과 함께 옆에 늘 끼고 다니게 될 책이 아닐까 생각한다.

반응형
댓글