소개
8년차 데이터 과학자, 데이터 엔지니어, 머신러닝 엔지니어로 근무했으며, 쏘카와 타다에서 데이터 분석, 데이터 엔지니어링 개발, 머신러닝 알고리즘을 개발했습니다.
카일스쿨 유튜브에 데이터 커리어 관련 영상을 꾸준히 올리고 있으며, 어떻게 해야 강의를 수강하신 분들이 더 좋은 커리어를 경험할 수 있을까?를 고민하며 자료를 만들고 있어요.
카일스쿨 유튜브 : https://www.youtube.com/c/kyleschool
기술 블로그 : https://zzsza.github.io/
인스타그램 : https://www.instagram.com/data.scientist/
대표 컨텐츠 : https://github.com/Team-Neighborhood/I-want-to-study-Data-Science
데이터 과학자가 되기 위해 진행한 다양한 노력들 : https://zzsza.github.io/diary/2019/04/05/how-to-study-datascience/
강의
전체2수강평
게시글
질문&답변
2024.04.29
4-5 연습문제 4번
안녕하세요! 4-5 연습문제 4번에서 서브쿼리에 *을 꼭 써야하는 이유는 서브쿼리 바깥에 있는 FROM 절 입장에선 서브쿼리가 일종의 테이블처럼 인식합니다. SELECT day_of_week, COUNT(DISTINCT id) AS battle_cnt FROM ( SELECT *, EXTRACT(DAYOFWEEK FROM battle_date) AS day_of_week FROM `basic.battle` ) GROUP BY day_of_week ORDER BY day_of_week 위 쿼리에 서브 쿼리인 SELECT *, EXTRACT(DAYOFWEEK FROM battle_date) AS day_of_week FROM `basic.battle` 위 쿼리를 실행해보면 다음과 같은 결과가 나타납니다 (사진) 위에 결과에서 아래 쿼리를 실행하는 것으로 볼 수 있습니다 SELECT day_of_week, COUNT(DISTINCT id) AS battle_cnt FROM 위 결과 테이블 GROUP BY day_of_week ORDER BY day_of_week 만약 서브 쿼리에서 *을 제외했으면 아래와 같은 결과가 나타납니다 SELECT EXTRACT(DAYOFWEEK FROM battle_date) AS day_of_week FROM `basic.battle` (사진) 즉, day_of_week 밖에 없는 데이터인거죠 그래서 아래 쿼리를 실행할 때, id가 없기 때문에 Unrecognized name(데이터에 해당 컬럼이 없다) 오류가 발생하는 것입니다 SELECT day_of_week, COUNT(DISTINCT id) AS battle_cnt FROM 위 결과 테이블 GROUP BY day_of_week ORDER BY day_of_week 그렇다면 여기서 COUNT(DISTINCT *)도 가능한가? DISTINCT를 할 때는 구체적인 컬럼을 명시해야 하기 때문에 실행이 안됩니다 그럼 COUNT(*)도 가능한가? 실행은 되지만 단순히 Row 수만 COUNT하게 됩니다. 지금 데이터에선 답이 같을 수 있지만, id가 중복으로 존재하는 테이블에서는 COUNT(*)은 의도와 다른 값이 나타날 수 있습니다. 그래서 id를 DISTINCT해서 고유값만 COUNT한 것이에요 정리하면, 서브 쿼리에 있는 컬럼이 있어야 바깥에서 불러올 수 있습니다. 일종의 테이블이라고 생각하시면 이해가 쉬울 것 같네요
- 0
- 1
- 28
질문&답변
2024.04.29
battle 파일 표시할 데이터가 없습니다 문제
유정님 안녕하세요. 최근에 비슷한 질문이 있었는데, 아래 글에 해결 방식을 작성해두었어요. 확인해주시겠어요? 빅쿼리 내부의 오류로 파티션을 설정할 때 데이터가 사라지는 오류 같아요. 파티션 설정을 하지 않고 테이블을 생성했을 때 데이터가 보이면 아래의 이슈와 동일한 이슈일 것 같아요. https://www.inflearn.com/questions/1250442/battle-%ED%85%8C%EC%9D%B4%EB%B8%94-%ED%98%95%EC%84%B1%ED%95%A0-%EB%95%8C-%EC%A0%9C%EA%B0%80-%EC%96%B4%EB%96%A4-%EC%8B%A4%EC%88%98%EB%A5%BC-%ED%96%88%EC%9D%84%EA%B9%8C%EC%9A%94
- 0
- 1
- 28
질문&답변
2024.04.29
sql 실행순서와 서브쿼리 사용이유
안녕하세요. 우선 쿼리 실행 순서는 FROM - WHERE - GROUP BY - HAVING - SELECT 순서로 진행됩니다. 이런 경우라면 SELECT에서 Alias를 걸었던 컬럼을 GROUP BY에서 사용하지 못하는 것이 일반적입니다. 그러나 BigQuery에선 이런 경우에 SELECT의 Alias를 인식해서 GROUP BY에도 사용할 수 있도록 해주고 있어요. 과거엔 BigQuery도 SELECT Alias가 안되다가 기능이 생겼어요. 그래서 빅쿼리에선 해당 경우에도 실행이 됩니다만 실행 순서는 GROUP BY가 더 빠르다고 알고 계시면 좋을 것 같아요 아래 쿼리는 목적에 따라 다를 것 같아요. 1회성으로 new_type1이랑 집계만 하면 후자 쿼리가 더 좋을 수 있는데, 이 쿼리 결과를 가지고 다른 곳에서 많이 사용한다고 하면 전자가 더 좋을 수도 있지요. 사용 목적에 따라 다른 판단을 할 것 같네요. 서브 쿼리는 다양한 목적으로 사용하는데, 한번 더 데이터를 전처리해야 하는 경우가 있습니다. 한번 더 데이터를 가공하고 필터링할 때 사용할 수 있습니다. 서브 쿼리를 사용하냐 안하냐는 상황에 따라 다릅니다. 지금 수강하시는 강의는 쿼리가 다 짧고 JOIN이 없어서 서브 쿼리의 필요성을 느끼기 어려울 수 있으나 JOIN을 배우고 현업으로 갈수록 복잡한 구조에서 데이터 필터링을 할 때 서브 쿼리를 사용하기도 합니다(그 외에 가독성 목적도 있고 목적이 다양해요)
- 0
- 1
- 46
질문&답변
2024.04.27
코드 에디터가 이상한데, 어떤 설정을 건드려야할지 모르겠어요.
시주님 안녕하세요! 앗 이런 경우엔 아마 빅쿼리의 오류인 것 같아요. 시간이 지나고 다시 해보시거나 다른 웹브라우저에서 하셔도 그럴까요? 가끔 이런 경우가 있는데 시간이 지나면 버그가 고쳐졌던 것 같아요!
- 0
- 1
- 51
질문&답변
2024.04.27
4-5. 시간 데이터 연습 문제 2번 문제 관련
안녕하세요. 해당 부분은 해석에 따라 애매할 수도 있겠네요. 18시 사이라고 했는데 18시 59분까지 포함한 의미로 쿼리를 작성했네요. 말씀하신 경우로 생각해보면 해당 강의에서
- 0
- 1
- 44