SQL은 어디서 배우나요?

  • #3422779
    sally 209.***.97.44 1475

    저는 이번에 data scientist로 구직중인 대학원생입니다.

    학교에서는 R이나 SAS 정도만 써서 SQL은 쓸 일이 없었는데

    이번에 보는 인터뷰에서는 SQL을 한시간동안 물어본다고 하네요.

    시중에서 구할 수 있는 책이나 몇몇 웹사이트에서 급히 독학을 해서

    group by, order by, inner join, outer join 정도는 간단한 수준으로 할 수 있는데

    실제 현직에서 일하시는 분들은 어떻게 준비를 하셨는지 여쭤보고 싶습니다.

    (data scientist 인터뷰에 적합할 정도의 난이도면 더 좋을 것 같습니다)

    저에게 도움되는 책/사이트 등 알려주실 수 있을까요?

    • 1234 73.***.1.22

      SQL Zoo

    • sdfsdf 73.***.176.219

      구글쳐봐 주르륵나옴

    • TX 99.***.214.18

      온라인에 많이 있는 샘플 데이터를 받아서 실제로 raw data부터 리포트 직전까지 만들어보세요. 내가 이걸가지고 executive에게 리포트 하려는데 어떤 key finding이 있고 어떻게 roll up하면 좋을지 생각해보면 sql query는 자동으로 따라옵니다. 실무보면서도 잘 기억 안나면 구글 찾아서 해요.

      결국 인터뷰는 첫 직장 수준이면 hands on 수준은 기대 안하고 thought process 위주로 볼거에요.

      위에 언급한 기본 group by left/inner join, window function, cte, union vs union all, index 기본적인건 공부하시구요.

      • sally 131.***.249.228

        감사합니다. 좋은 데이타로 제가 문제를 생각해보면서 모르는 걸 구글해봐야겠네요!

    • KoreanBard 66.***.213.146

      DS 쪽으로 한 시간 동안 물어보는 것이면 기본 쿼리는 물론이고, join 넘어서 좀 더 깊은 수준까지 물어볼 것 같은데요.

      회사마다 다르지만 DS 부서의 경우 데이터를 한 눈에 보고 윗선에 바로 보고하는 부서라서. 윗분들 보시기 좋게 1년치 데이터를 한 번에 정리할 수 있는 실력은 기본으로 가지고 있어야 합니다. 저도 잘은 못하지만 살짝 맛 본 걸로 하면..

      1) 예를 들어서 상품별로 1년치 sales 데이터가 있는데 이를 월별/상품별로 total, average, median 구하고, 월별로 subtotal 구하고 마지막으로 grand total 구해라.
      – 이럴 경우 평균 구한다고 total / number 이러면 바로 점수 깎이죠. 요즘은 sql 자체에 sum, avg, med 구하는 기능이 다 있거든요. 그리고 rollup, cube 기능 쓰면 알아서 subtotal, grand total 까지 구해주고요. 복잡하게 계산해서 하지 말고 sql 자체에 있는 기능을 잘 쓰는 쪽으로 방향을 잡으세요.

      2) 한 테이블에서 조인해서 양쪽으로 비교하는 거 잘 쓰더라구요. 2018년 데이터랑 2019년 데이터 비교해서 매출이 어느 정도 증가했고, %는 어느정도 증가했는지. 옆으로 펼쳐서 보여주도록.

      3) CTE 라고 common table expression… 데이터가 복잡해지면 이를 하나의 테이블로 만들어 임시 저장 할 수 있습니다. with A as 이런식으로 시작해서 만든 후에, A 자체를 다른 테이블과 조인시켜서 쓰고 하는거 많이 써요. 이거 각종 리포트 및 어플리케이션에 잘 쓰여서 점수 많이 줌.

      첨 직장이면 어느 정도 감안을 해서 인터뷰를 할 것이니. SQL 쪽을 잘 모르고 syntax 같은 것 조금씩 틀려도 어느 정도 감안을 해 줄거에요. 어려운 질문이 나와도 무조건 모른다고 하지마시고 R 이면 이런 기능이 있는데 SQL 에도 비슷한 기능이 있으면 쓰겠다. SAS 에서 이렇게 풀었는데 SQL 에서도 비슷한 approach 를 하겠다고 하시면 훨씬 좋은 대답이 되죠.

      잘 준비하셔서 좋은 결과 있기를 바랍니다.

      • sally 131.***.249.228

        정말 많은 도움이 되었습니다. 실제로 윗분들 보시기에 좋은 결과를 sql로 잘 구현하는 방법 연습해야겠네요.

    • jc 148.***.126.18

      실제로 직장에서 Data Scientist로 일을 해보면 회사마다 tech stack이 다르지만, R이나SAS는 소수에 불과하죠.
      SQL은 데이터의 핵심이고 기본중의 기본이기때문에 꼭 연습 하셔야합니다.
      Facebook에서 Data Scientist인터뷰 보시면 SQL만 엄청 물어봅니다. 전 페북 인터뷰때 SQL로 collaborative filtering을 query하라는 질문을 받은게 기억나네요.

      • sally 209.***.97.44

        Collaborative filtering을 sql로 query한다는 생각 자체를 처음 해 본 것 같네요. 테크회사의 인터뷰 레벨의 상한선이 그정도라고 보고 준비해야 할 것 같습니다. 감사해요!

Cancel