묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
- 
      
        
    해결됨BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)1-9 PIVOT문제 풀기안녕하세요 카일스쿨님!1-9 PIVOT문제를 풀어봤습니다.먼저 PIVOT전에 제방식대로 푼코드를 드리겠습니다. 제가 WITH문을 자주 쓰지않고 그냥 한코드에 다쓰는 습관이 있어서 이런식으로 코드를 짜면 안좋은점이 있는지 피드백받고싶습니다. 또한 PIVOT문제를 풀긴 했는데 맞는 답인지 피드백받고싶습니다.-- PIVOT하기전에 제가 푼 것-- 내가 쓴 답 -- SELECT -- event_date, -- concat(event_name,'-', param.value.string_value) AS event_name_with_screen, -- CASE -- WHEN (event_name='screen_view' AND param.value.string_value='welcome') THEN 1 -- WHEN (event_name='screen_view' AND param.value.string_value='home') THEN 2 -- WHEN (event_name='screen_view' AND param.value.string_value='food_category') THEN 3 -- WHEN (event_name='screen_view' AND param.value.string_value='restaurant') THEN 4 -- WHEN (event_name='screen_view' AND param.value.string_value='cart') THEN 5 -- WHEN (event_name = 'click_payment' AND param.value.string_value='home') THEN 6 -- ELSE 0 -- END AS step_number, -- COUNT(DISTINCT user_id) AS cnt -- FROM `expanded-idiom-446706-d4.advanced.app_logs` -- CROSS JOIN UNNEST(event_params) AS param -- WHERE -- (event_date BETWEEN "2022-08-01"AND '2022-08-18') AND key='firebase_screen' -- GROUP BY event_date,event_name,param.value.string_value,step_number -- HAVING step_number !=0 -- ORDER BY step_number ,event_date-- PIVOT문제 푼것 WITH base AS ( SELECT event_date, event_timestamp, event_name, user_id, user_pseudo_id, platform, MAX(IF(event_param.key = 'firebase_screen',event_param.value.string_value,null)) AS firebase_screen, MAX(IF(event_param.key = 'food_id',event_param.value.int_value,null)) AS food_id, MAX(IF(event_param.key = 'session_id',event_param.value.string_value,null)) AS session_id FROM advanced.app_logs CROSS JOIN UNNEST(event_params) AS event_param WHERE -- event_date = '2022-08-01' # 적은 데이터로 쿼리를 작성하기 위해 만들어둔 조건 event_date BETWEEN '2022-08-01' AND '2022-08-18' GROUP BY ALL ) , fliter_event_and_concat_evnet_and_screen AS( -- screen과 event_name을 합치자(필요한 이벤트만 where 조건에걸어서 사용) SELECT * EXCEPT(event_name,firebase_screen,event_timestamp), CONCAT(event_name,'-',firebase_screen) AS event_name_with_screen, DATETIME(TIMESTAMP_MICROS(event_timestamp),'Asia/Seoul')AS event_datetime FROM base WHERE event_name IN ('screen_view','click_payment') ) SELECT event_date, SUM(IF(event_name_with_screen='screen_view-welcome'),cnt,0) AS `screen_view-welcome`, SUM(IF(event_name_with_screen='screen_view-home'),cnt,0) AS `screen_view-home`, SUM(IF(event_name_with_screen=' screen_view-food_category'),cnt,0) AS `screen_view-food_category`, SUM(IF(event_name_with_screen='screen_view-restaurant'),cnt,0) AS `screen_view-restaurant`, SUM(IF(event_name_with_screen='screen_view-cart'),cnt,0) AS `screen_view-cart`, SUM(IF(event_name_with_screen='click_payment-cart'),cnt,0) AS `click_payment-cart` FROM fliter_event_and_concat_evnet_and_screen GROUP BY ALL ORDER BY event_date 
- 
      
        
    미해결[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]데이터 삭제 질문- 강의 영상에 대한 질문이 있으시면, 상세히 문의를 작성해주시면, 주말/휴일 제외, 2~3일 내에 답변드립니다 (이외의 문의는 평생 강의이므로 양해를 부탁드립니다.)- 강의 답변이 도움이 안되셨다면, dream@fun-coding.org 로 메일 주시면 재검토하겠습니다. - 괜찮으시면 질문전에 챗GPT 와 구글 검색을 꼭 활용해보세요~- 잠깐! 인프런 서비스 운영(다운로드 방법포함) 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 즐겁게 강의를 수강 중인 수강생입니다. sql 데이터 수정 삭제 문법 이해하기 - 실습 중이름이 김철수인 학생만 삭제하려고 넣으니15:25:41 DELETE FROM students WHERE name = '김철수' Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect. 0.000 sec 라고 오류가 떠 gpt에 질문하여 해결하였습니다. 다만 gpt는 안전모드를 해제(일시적 또는 영구적)하거나 기본키(id) 또는 인덱스가 있는 컬럼을 사용하여 삭제하라고 추천합니다. 질문은, 보통 sql 이용 시 안전모드를 해제하고 사용하면 되는 걸까요?아니라면 id가 아닌 컬럼을 선택하여 삭제하는 경우가 거의 없어서 일시적으로 안전모드 해제하고 삭제하는 것이 일반적인 경우일까요? 
- 
      
        
    해결됨[백문이불여일타] 데이터 분석을 위한 고급 SQL고급반 cheetsheet- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 수업자료 버튼이 막혀있는 것 같아요고급반 cheetsheet 신청하는 이메일 주소 알려주세요~ 
- 
      
        
    미해결[웹 개발 풀스택 코스] 넷플릭스와 당근마켓 분석을 통해서 배우는 데이터베이스 기초SQL 설치시 관련 옵션이 없습니다중간 과정에서 문제 생긴건지 아니면 설치 옵션이 바뀐것지 모르겠지만 PDF 파일에 나온 Windows 환경에서 설치하는 과정에서DeveloperDefault 옵션이 보이지 않습니다.그래서 일단 Full 옵션을 선택해서 다운로드 했는데 상관없을까요?( 아래는 PDF 이미지 입니다. 저는 맨 윗줄 옵션이 아예 누락되서 나오네요. ) 
- 
      
        
    해결됨실전 jOOQ! Type Safe SQL with JavaSakila DB 도커 컴포즈 구성 시 팁MySQL의 기본 데이터 저장 경로는 /var/lib/mysql이므로, 직접 만든 볼륨에 /data 경로가 아닌 /var/lib/mysql을 지정해주셔야 합니다.도커 컴포즈 파일 내 Volumes-top-level-elements 설정 시, sakila_volume: 이하에 external: true를 지정하지 않으면, {project_name}_db-data 인 이름의 볼륨을 찾고 없으면 해당 볼륨을 생성합니다.(예: sakila-mysql_sakila_volume) 따라서 external: true를 지정하거나, name: sakila_volume 을 지정해야합니다.see → https://docs.docker.com/reference/compose-file/volumes/ 
- 
      
        
    해결됨초보자를 위한 BigQuery(SQL) 입문총 정리 문제 풀이 2번 문제 추가 질문카일님 안녕하세요. 강의 아주 잘 듣고 있습니다 감사합니다 :)총 정리 문제 2번에서 추가 질문 드립니다.제가 처음 풀때 문제를 잘못이해하여, type1 별 가장 많이 포획된 포켓몬 이름과 횟수를 각 type1 TOP 1 들을 구하려고 했습니다. MAX (COUNT) 라는 말도 안되는 쿼리를 작성하면서 고군분투 하였고, 결국 못 풀었습니다.다행히 채점할때 카일님이 의도하신 출제방향으로는 답이 나와있는 상태여서 이해는 하였습니다 만. !커머스라고 가정할 때 각 카테고리별(type1) , 가장 많이 팔린 제품(kor_name), 최다 판매수(cnt) 를 구해야 한다면, 제가 풀지못했던 문제로 해결할 수 있을 것 같아서요.type1 별로 포획량 TOP 1을 구하는 쿼리는 어떻게 작성하면 좋을 까요? 
- 
      
        
    미해결다양한 사례로 익히는 SQL 데이터 분석쿼리에 대한 질문이 있습니다.select page_path, count(*) as page_cnt, count(distinct sess.sess_id) as unique_page_cntfrom ga.ga_sess_hits hisjoin ga.ga_sess sesson his.sess_id = sess.sess_idwhere visit_stime >= ('2016-11-01'::date - interval '30 days') and visit_stime < '2016-11-01'and hit_type = 'PAGE'group by page_pathorder by 2 desc;저는 위와 같이 쿼리를 작성했습니다만, 교육 자료에서 temp_01, temp_02로 각각 나눠서 page_cnt와 unique_page_cnt를 구하는 것에 어떠한 장점이 있어서 교안의 쿼리 대로 작성하는지 궁금합니다. 제가 단순히 생각하기에는 비효율적으로 보여서요! 제 쿼리가 비효율적일 수도 있는데, 장단점을 들어보고 싶습니다. 
- 
      
        
    미해결실습으로 손에 잡히는 SQLD의 정석(2과목)SELECT * FROM emp;dbeaver 처음 테스트해볼때 SELECT * FROM emp; 해도 전 불려오는 데이터가 없습니다.. 당연하죠 테이블을 넣은적이 없으니..ㅠㅠ 테이블은 SQL 기초때껄 사용하면 되나요?? 이런것에 대한 설명 보완이 필요합니다.SQL Error [942] [42000]: ORA-00942: table or view does not existError position: line: 1 pos: 14 
- 
      
        
    해결됨SQLD 자격대비 과정교안 파일 문제데이터 모델링 강의에 있는 교안이 빅분기 파일인데 교체 부탁드립니다. 
- 
      
        
    미해결실습으로 손에 잡히는 SQLD의 정석(2과목)dbeaver 설정오라클도 깔았는데 뭐가 문제일까요.. 노션 설명이 많이 부족합니다.. ++ 결국 GPT유료 지르고 4시간 걸려서 해결했습니다. 노션을 입문자 시야에서 많이 보완해주세요ㅠ 
- 
      
        
    해결됨BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)리텐션 과제리텐션 과제 제출합니다 !쿼리를 짜는 것보다 유저를 어떤 기준으로 나눌 것인지, 리텐션을 어떻게 해석할 것인지 등의 부분이 항상 어려운 것 같습니다 . . ㅠㅠ최대한 배운 내용을 활용해서 인사이트를 도출해보고자 했습니다. 한번 봐주시면 감사하겠습니다 ㅎㅎ!https://bubble-supernova-783.notion.site/19defe88476380ef91abc06719a01ba9#1a4efe88476380e6bd84d4ac9602522d 
- 
      
        
    미해결비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)측정 시간 차이안녕하세요. 성능을 측정해보며 궁금증이 생겨 질문 드립니다. 같은 크기의 데이터에 대해 강사님께서 측정하신 시간이랑(강의에선 약 170ms) 제가 데이터그립으로 측정한 시간(약 80ms)에 꽤 차이가 있는데, 컴퓨터 사양이나 측정 툴에 따라 이 정도 차이가 있어도 무방한건가요? 
- 
      
        
    해결됨[2025] SQLD 문제가 어려운 당신을 위한 노랭이 176 문제 풀이오타제보mssql 다운시 도커 mrc로 오타있네요mcr인데 문서만보고 하면 잘못된 주소로 오류뜹니다 
- 
      
        
    해결됨SQL Server 컨설턴트가 알려주는, 쿼리 능력 레벨업(고급 T-SQL 쿼리)강의 연장 신청입니다.- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강의 연장 부탁드립니다. 
- 
      
        
    해결됨SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법강의 연장 신청 입니다.안녕하세요. 강의 연장 부탁드립니다. 
- 
      
        
    해결됨초보자를 위한 BigQuery(SQL) 입문base.yml 파일 저장까지는 했는데, 이후 실행이 안됩니다ㅠㅠ여러번 edit 파일에 입력하고 저장했는데, 콘솔에서 검색하면 자동 입력이 안되더라구요ㅠㅠ그리고 이것저것 해보다가 위아래 편집 구문은 삭제했는데, 원본 구문을 보려면 어떻게 해야 할까요..?ㅠㅠ도와주세요ㅜㅜ 
- 
      
        
    해결됨오라클 SQL 데이터베이스섹션2 데이터정렬 연습문제 정답안녕하세요 섹션2에서 데이터정렬의 연습문제에 대한 정답은 어디서 확인할 수 있나요? 
- 
      
        
    해결됨초보자를 위한 BigQuery(SQL) 입문파티션 관련해서 질문이 있습니다!정말 좋은 강의 무료로 제공해 주셔서 감사합니다. 덕분에 막연했던 빅쿼리에 첫 발을 내딛을 수 있게 되었습니다.파티션 관련 궁금한 점이 있는데요. 날짜를 기준으로 파티션을 나눠서 where 절로 날짜 조건을 걸어 사용하는 예시를 보여 주셨는데요.굳이 파티션으로 나누지 않고, 일반 테이블로 만들고, where 절에 날짜 조건을 걸면 동일한 결과를 얻을 수 있고 쿼리 된 용량도 같지 않을까요?쿼리를 수행 결과 뿐 아니라 쿼리 수행을 위한 리소스도 비용에 포함 되는 건가요?감사합니다!! 
- 
      
        
    해결됨초보자를 위한 BigQuery(SQL) 입문inner join 을 사용했을 때의 이점이 있을까요?안녕하세요 카일스쿨님:)좋은 강의 너무 잘 듣고 있습니다. 실습 하나 하나 하면서 여기까지 왔는데요.join 예제를 풀어보면서 궁금한 점이 생겨서요.inner join을 사용하면 좀 더 타이트하게 제약을 둘 수 있고, 테이블 크기 자체도 줄일 수 있을 거 같다는 생각이 들었습니다. 결과도 동일하게 확인했습니다.예를 들어 join 3번 문제의 경우 trainer_pokemon 테이블에 inner join으로 trainer 테이블을 붙이면 결국 포켓몬을 잡아본 trainer로 테이블이 좁혀진다고 생각했고, 다른 경우의 수 생각할 필요 없이 location과 hometown만 비교해 결과를 얻었습니다.이때 left join을 사용하시는 이유와, 그 장점에 대해 알 수 있을까요?감사합니다! 
- 
      
        
    해결됨초보자를 위한 BigQuery(SQL) 입문JOIN 연습문제 3번 답이 다르게 나와요ㅠㅠ분명 선생님께서 해주신 거랑 똑같이 쿼리 입력했는데왜 저는 28/43개가 아니라 17/18개가 나오는 걸까요...? (혹시 그새 데이터 파일이 바뀌거나 한 걸까요 😂) 
