inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

176만명의 커뮤니티!! 함께 토론해봐요.

app logs 데이터로 쿼리 연습

해결됨

BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)

안녕하세요 카일님, 잘 듣고 있습니다. 강의 말미에서 app logs 데이터로 쿼리 연습 해보라고 말씀주셔서 아래와 같이 몇 가지 연습해 보았습니다. 더 정확한, 효율적인 쿼리가 있는지, 틀린 부분이 있다면 피드백 부탁드립니다. 1. Screen 탐색량이 가장 많은 유저 찾기 질문: 어떤 유저가 앱 내 screen을 가장 많이 탐색했는가? 목적: 유저별 screen 조회 횟수를 집계하여 heavy user 탐색. SELECT user_id, -- IF(event_params.key="firebase_screen", event_params.value.string_value, null) as screen, COUNT(*) as cnt_screen FROM advanced.app_logs CROSS JOIN UNNEST(event_params) as event_params WHERE event_params.key='firebase_screen' GROUP BY ALL HAVING user_id is not null ORDER BY cnt_screen DESC 2. 날짜별 Screen 조회량 및 Screen 구성 질문: 날짜별 전체 screen 조회량은 어떻게 변화하며, 각 screen은 얼마나 조회되었는가? 목적: Screen View의 시계열 변화와 screen별 조회량을 동시에 분석. double check 컬럼을 통해 정의한 screen들의 합계도 검증. WITH unnest_table as ( SELECT *, IF(event_params.key="firebase_screen", event_params.value.string_value, null) as screen FROM advanced.app_logs CROSS JOIN UNNEST(event_params) as event_params GROUP BY ALL HAVING screen is not null) SELECT event_date, count(screen) as total_screen_view, COUNTIF(screen IN ('cart','welcome', 'food_category', 'home', 'search_result', 'food_detail', 'search','restaurant')) as double_check, --검증용 컬럼 COUNTIF(screen='cart') as cart, COUNTIF(screen='welcome') as welcome, COUNTIF(screen='food_category') as food_category, COUNTIF(screen='home') as home, COUNTIF(screen='search_result') as serach_result, COUNTIF(screen='food_detail') as food_detail, COUNTIF(screen='search') as serach, COUNTIF(screen='restaurant') as restaurant FROM unnest_table GROUP BY ALL 3. Heavy User의 실제 Screen Journey 추적 질문: 특정 heavy user는 실제로 어떤 순서로 screen을 탐색하는가? 목적: Timestamp를 기준으로 사용자의 screen 이동 순서를 확인하고, firebaase screen 퍼널 순서 정의를 위한 탐색 수행. SELECT TIMESTAMP_MICROS(event_timestamp) as timestamp, if(event_params.key="firebase_screen", event_params.value.string_value, null) as screen FROM advanced.app_logs CROSS JOIN UNNEST(event_params) as event_params WHERE user_Id=57410 and event_date between '2022-08-01' and '2023-12-30' GROUP BY ALL HAVING screen is not null ORDER BY timestamp limit 100 4. Cart 도달 유저 vs Non-Cart 유저의 Screen 탐색량 비교 질문: Cart를 한 번이라도 조회한 유저는 그렇지 않은 유저보다 평균적으로 더 많은 screen을 탐색하는가? 목적: 사용자를 has_cart 여부로 segmentation하고 두 그룹의 평균 screen 탐색량 비교. WITH basic AS ( SELECT user_id, COUNT(*) AS screen_cnt_per_user, COUNTIF(event_params.value.string_value='cart') >0 AS has_cart FROM advanced.app_logs CROSS JOIN UNNEST(event_params) as event_params WHERE event_params.key='firebase_screen' GROUP BY user_id) SELECT AVG(IF(has_cart, screen_cnt_per_user,NULL )) as avg_view_cart, AVG(IF( not has_cart, basic.screen_cnt_per_user, null)) as avg_view_non_cart FROM basic unnest 와 집계함수를 연속적으로 쓰려고 할 때나 unnest+집계함수+having 쓰려고 할 때는 반드시 with문으로 분리해서 사용해야 오류가 안 나는 것 같더라고요. 그러다 보니 쿼리가 길어지는데 더 가독성 좋은 쿼리 작성법이 있을 것 같습니다. ㅎㅎ

  • sql
  • Google-Analytics
  • firebase
  • google-sheets
  • bigquery
이유정 댓글 2 좋아요 0 조회수 97

마스터패스...

미해결

김영한의 실전 데이터베이스 입문 - 모든 IT인을 위한 SQL 첫걸음(SQL부터 차근차근)

좀 늦게 알게되었는데..김영한 강사님의 마스터패스 기한을 좀 연장해 주실수 있나요?

  • sql
  • mysql
  • dbms/rdbms
  • SQLD
Kyeong Won Kim 댓글 1 좋아요 0 조회수 109

[과제] 연습문제 쿼리 작성했습니다!

해결됨

BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)

안녕하세요 카일님, 강의 잘 듣고 있습니다. 연습문제 쿼리 작성해 보았는데 잘못된 부분이 있는지, 더 나은 쿼리 방식이 있다면 피드백 부탁드립니다 감사합니다. WITH basic AS (SELECT event_date, event_name, user_pseudo_id, event_params, if(event_params.key="firebase_screen", event_params.value.string_value, null) as screen FROM advanced.app_logs CROSS JOIN UNNEST(event_params) as event_params WHERE event_date between '2022-08-01' and '2022-08-18' ), basic2 as ( SELECT event_date, concat(event_name, '-', screen) as event_name_with_screen, COUNT(user_pseudo_id) as cnt FROM basic WHERE event_name in ('screen_view', 'click_payment') GROUP BY ALL HAVING event_name_with_screen is not null ORDER BY event_date) SELECT event_date, MAX(if(event_name_with_screen='screen_view-welcome', cnt, null)) as screen_view_welcome, MAX(if(event_name_with_screen='screen_view-restaurant', cnt, null)) as screen_view_restaurant, MAX(if(event_name_with_screen='screen_view-food_category', cnt, null)) as screen_view_food_category, MAX(if(event_name_with_screen='screen_view-food_detail', cnt, null)) as screen_view_food_detail, MAX(if(event_name_with_screen='screen_view-cart', cnt, null)) as screen_view_cart, MAX(if(event_name_with_screen='click_payment-cart', cnt, null)) as click_payment_cart, MAX(if(event_name_with_screen='screen_view-search', cnt, null)) as screen_view_search, MAX(if(event_name_with_screen='screen_view-search_result', cnt, null)) as screen_view_search_result FROM basic2 GROUP BY all ORDER BY event_date

  • sql
  • Google-Analytics
  • firebase
  • google-sheets
  • bigquery
이유정 댓글 2 좋아요 0 조회수 84

실습소 페이지

해결됨

실습으로 손에 잡히는 SQLD(2과목)

로그인해도 DCL 명령어가 안됩니다.. CREATE 문을 실행하려면 개인 스키마가 필요합니다. 잠시 후 다시 시도하거나 재로그인해주세요.

  • sql
  • oracle
  • mssql
  • SQLD
석건원 댓글 3 좋아요 0 조회수 115

57번

미해결

SQLD의 정석: 노랭이 문제집 씹어먹기

3,4번 선지에서 왜 토탈이 소멸되나요 ??

  • sql
  • oracle
  • mssql
  • SQLD
김주희 댓글 1 좋아요 0 조회수 65

안녕하세요. 요약집 어디서 볼 수 있을까요?

미해결

실습으로 손에 잡히는 SQLD(2과목)

찾아봐도 실습 하는 링크 외에는 안보이네요. 시험 보기 전 요약집을 보려고 했는데 찾기 어려워서 문의드립니다.

  • sql
  • oracle
  • mssql
  • SQLD
수아레 댓글 1 좋아요 1 조회수 63

64비트 다운로드 링크

미해결

핵심만 쉽게, 모두의 SQL 데이터 분석

안녕하세요, 강의 수강중인데, 해당 강의 교재에 첨부되어있는거는 32비트용만 있고, 제공해주신 링크(https://datachef.co.kr)는 접속이 안됩니다. 64비트용 다운로드 링크를 못찾겠습니다...ㅠㅠ

  • sql
  • 퍼포먼스-마케팅
이효주 댓글 2 좋아요 0 조회수 67

리뷰

미해결

김영한의 실전 데이터베이스 입문 - 모든 IT인을 위한 SQL 첫걸음(SQL부터 차근차근)

리뷰를 남기라고 하셨는데...리뷰를 어디에 남기는지 모르겠네요... 에너지 회사에서 시황 데이터와 거래 데이터를 많이 다루는 50대 입니다....sql말만 듣고 동영상 듣기까지 한 10년 정도 걸린거 같네요.. 도메인 지식만 가지고 최근 ai의 도움으로 여기까지 오게 되었습니다. 선생님 다른 강의도 잘 보겠습니다. ^^

  • sql
  • mysql
  • dbms/rdbms
  • SQLD
jhpride 댓글 2 좋아요 0 조회수 115

3번 문제 질문!

해결됨

초보자를 위한 BigQuery(SQL) 입문

-- select -- kor_name,total, -- case -- when total >= 501 then 'High' -- when total <= 300 then 'Low' -- else 'Medium' -- end as total_rank -- from `basic.pokemon` 저는 High와 Low 범위를 정해놓고 나머지를 Medium 으로 Else에 넣었는데 이렇게 해도 될까요?

  • sql
  • bigquery
  • 데이터-리터러시
로키마운틴듀 댓글 2 좋아요 0 조회수 72

41번과 43번 문제

미해결

SQLD의 정석: 노랭이 문제집 씹어먹기

41번 문제의 3번과 43번 문제의 보기가 엔터티의 일반속성은 주식별자 전체에 종속적이어야한다로 같은 왜 답은 다르나요? 어떤게 맞는 정답인가요?

  • sql
  • oracle
  • mssql
  • SQLD
정사라 댓글 1 좋아요 0 조회수 70

upload_file_id가 1,3,4 순서인 건에 대해

미해결

김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복

안녕하세요 제목 그대로 upload_file_id가 1,3,4 순서인 건에 대해 궁금한 점이 image.jpg 를 insert하다가 제약조건에 의해 실패를 한번해서 2가 안생긴건가요? 실패했을때도 auto increment는 동작을 하는건가요?

  • sql
  • mysql
  • dbms/rdbms
  • 소프트웨어-설계
  • SQLD
liob_reverse 댓글 2 좋아요 0 조회수 86

p.created_at vs u.name 인덱스 문의

미해결

비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)

안녕하세요 강사님 그 전 섹션 강의에서 range index인 create_at에 인덱스를 거는것이 name에 거는것보다 속도 향상이 드라마틱하게 올라갔었는데 이번 강의 두 테이블 조인에서는 create_at 이 아닌 u.name에 인덱스가 걸렸네요..? 혼란스럽습니다 ㅠ join시 인덱스 방식이 달라지는지 궁금합니다 또, 다른 곳에서 파티셔닝, 클러스터링?? 이라는 용어들도 보이던데 이것도 인덱스에서 파생된 것일까요?

  • sql
  • mysql
  • dbms/rdbms
  • query-tuning
홍태경 댓글 2 좋아요 0 조회수 81

수강기간 연장 문의드립니다

미해결

SQL Server 컨설턴트가 알려주는, 쿼리 능력 레벨업(고급 T-SQL 쿼리)

안녕하세요 선생님 쿼리 능력 레벨업(고급 T-SQL 쿼리) 강의를 수강중입니다 회사 업무와 병행하다보니 수강기간이 10일 정도 남았는데 강의를 많이 듣지 못했습니다 ㅠㅠ 수강기간을 연장해주시면 열심히 들어서 완강하도록 하겠습니다 수강기간 연장 부탁드립니다!

  • sql
찌임닭 댓글 2 좋아요 1 조회수 65

이진 트리 노드

미해결

김영한의 실전 데이터베이스 - 성능 최적화, 실행 계획과 인덱스 완전 정복

이진 트리도 하나의 16KB 페이지에 여러 노드를 저장할 수 있는 것 아닌가요? 그렇다면 ‘이진 트리는 16KB 페이지를 읽어도 데이터 1개만 사용하고 나머지는 버린다’는 설명이 잘 이해되지 않습니다. 이 부분이 어떤 의미인지 설명해주실 수 있을까요?

  • sql
  • mysql
  • dbms/rdbms
  • sql-tuning
  • SQLD
댓글 1 좋아요 0 조회수 80

조인의 특징

미해결

김영한의 실전 데이터베이스 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 강의안 제목은 외부 조인이지만 앞에서 내부 조인 얘기를 함께 하기도 하고 명령어도 단순히 JOIN(내부)로 사용하셔서 부모가 자식과 조인을 할 때 행 개수는 유지되거나 증가할 수 있다는 얘기를 이해하기 힘들었습니다. 내부 조인의 경우에는 행이 감소할 수도 있으니까요 강의안 '조인의 특징' 섹션 내 코드의 JOIN 명령어들을 LEFT JOIN으로 변경 또는 외부 조인의 특징이라고 명시해주시면 더 정확할 거 같아요. 섹션 제목이나 본문에 어디에도 '조인'이라고만 나와있어서..ㅠㅠ 당연한 얘기인데도 많이 헷갈렸어요 심지어 내부 조인 명령어를 썼는데도 행 개수가 감소하지가 않는 예시들이어서요

  • sql
  • mysql
  • dbms/rdbms
  • SQLD
재앙 댓글 2 좋아요 0 조회수 89

MLOps Engineer가 되려면 뭘 쌓아가야 할까요?

미해결

FastAPI 완벽 가이드

안녕하세요 강사님! 항상 수업 잘 듣고 있습니다. 저는 그간 데이터 분석가를 꿈꾸며, 강사님의 "머신러닝 완벽가이드", "tensorflow cnn", "pytorch cnn", "transformer 구현 ~", "fastapi 완벽가이드", "kaggle ~" 강의를 몇번이고 들으며 익혀왔습니다. "내가 만든 인공지능 모델이 과연 어떻게 쓰일까"에 대해서 고민하다가 fastapi까지 공부했는데요. 이제는 Data Engineering이나 MLOps Engineering 쪽으로 취업하고 싶다고 결정하여 어떻게 어디서부터 공부할지 막막합니다. 찾아보니 사실상 Data Scientist가 하는 업무를 제외하고 배포가 되는 과정까지를 다 할줄 알아야 하고, 요구하는 기술적 요건도 많아보였습니다.(docker, fastapi, vllm, kafka, airflow 등등..) 이에 강사님께서 제가 앞으로 MLOps쪽으로 간다면 어떤 것을 공부하면 좋을 것 같은지, 대학원을 생각해보는게 좋을지 등을 추천해주셨으면 좋겠습니다.. 강사님 강의만 거의 들어온 상태라서 저 강의에 나온 내용을 제외하면 아무것도 모른다고 가정해주시면 감사하겠습니다 !

  • python
  • sql
  • sqlalchemy
  • FastAPI
jcy4023 댓글 3 좋아요 1 조회수 127

노션 링크 좀 열어주세요

미해결

실습으로 손에 잡히는 SQLD(2과목)

그것만 믿고 결제했는데 뭔가요?

  • sql
  • oracle
  • mssql
  • SQLD
red9123 댓글 1 좋아요 0 조회수 85

1-2 battle 테이블 설정 질문 있습니다.

해결됨

초보자를 위한 BigQuery(SQL) 입문

처음 테이블을 만들때 battle 테이블은 1 헤더행을 건너뛰었는데, 왜 건너뛴건지 설명해주셨지만 잘 이해가 가지 않습니다. 일단 넘어가도 괜찮은 부분인걸까요?

  • sql
  • bigquery
  • 데이터-리터러시
okjini0805 댓글 1 좋아요 0 조회수 73

Failed to fetch

미해결

실습으로 손에 잡히는 SQLD(2과목)

https://sqld-frontend.vercel.app/ 에서 sql 실습하려는데 오류가 뜹니다 해결 부탁드려요

  • sql
  • oracle
  • mssql
  • SQLD
이루다 댓글 1 좋아요 0 조회수 114

12강 집계 함수 8번 연습문제 질문

해결됨

초보자를 위한 BigQuery(SQL) 입문

안녕하세요, 12강 8번 연습문제의 '전체 포켓몬 수'를 구하는 쿼리를 작성하라는 문제에서요. 보여주신 내용은 포켓몬 종류의 수이지만, 만약 pokemon의 total 컬럼의 합을 구한다고 가정한다면 어떤 쿼리문이 나와야 하는 것일까요?

  • sql
  • bigquery
  • 데이터-리터러시
동서남북 댓글 1 좋아요 0 조회수 67

인기 태그

인프런 TOP Writers

주간 인기글