묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 데이터베이스 입문 - 모든 IT인을 위한 SQL 첫걸음(SQL부터 차근차근)
sql서버가 켜지면 다시 꺼짐
mac m3 max 기준에서 8.0.44버전을 다운로드하면 sql서버가 켜지면 다시 꺼지고 켰다가 다시 꺼지고를 반복이 됩니다. 이런경우에는 어떻게 해야하나요?
-
해결됨[백문이불여일타] 데이터 분석을 위한 고급 SQL
문제 내용이 잘못된 것 같습니다.
안녕하세요. 강사님 2012년 이후라고 한다면 비교연산자가 >= 가 아니라 > 로 해야 하는 거 아닌가요?
-
해결됨[백문이불여일타] 데이터 분석을 위한 기초 SQL
WHERE절에 LIKE문법을 IN으로 묶어서 사용
데이터 필터링하기 연습문제 질문입니다.HackerRank - Weather Observation Station 6해당 연습문제에서 아래와 같이 작성했는데 이런경우에는 왜 안 되는 건가요?SELECT DISTINCT CITY FROM STATION WHERE CITY LIKE IN ('a%','e%','i%','o%','u%')WHERE절에 LIKE문법을 IN으로 묶어서 사용이 안 되는 건가요?
-
미해결실무에서 바로 쓰는 SQL튜닝 45가지
Buffers와 TotalCost / cpu_cost / io_cost 의 차이점?
안녕하세요 학습을 완료하고 실 운영DB를 바라보고 여러가지 힌트를 사용하면서 테스트 해보고있는데요DataGrip을 툴로 사용중인데 거기서 Explain plan을 하게되면 TotalCost / cpu_cost / io_cost 라는게 나오는데 버퍼랑 똑같겠거니 하면서 cpu_cost 쪽을 줄여보는 방향으로 튜닝중입니다. 그렇게하면 맞는걸까요??
-
해결됨초보자를 위한 BigQuery(SQL) 입문
location IS NOT NULL 을 굳이 안 써도 되지 않나요?
문제 3번입니다.hometown 값은 존재하고, location이 NULL일 때 WHERE에서 tp.location = t.hometown 진행하면 자동으로 FALSE가 나오지 않을까요?location IS NOT NULL 구문을 추가하신 이유가 궁금합니다.
-
해결됨[백문이불여일타] 데이터 분석을 위한 고급 SQL
서브쿼리 질문
안녕하세요 강의 잘 보고 있습니다. 한가지 헷갈리는게 올려주신 해설은 2022년 1월의 미세먼지 농도 평균이 아니라 전체 연도의 평균아닌가요? 2022년 1월의 평균을 구하려면 서브쿼리 안에도 where로 조건을 걸어줘야 하는걸까요?
-
해결됨초보자를 위한 BigQuery(SQL) 입문
12강 집계 함수
안녕하세요. 12강 집계 함수 연습 문제 7~9 번 풀이 중 궁금한 것이 있습니다. 9번 문제의 경우 풀이해주실때 SELECT 이후 컬럼 generation 을 작성해주셨는데 , 8번 문제 풀이 시 select 이후 컬럼 을 따로 작성하지 않아서 두 가지 모두 쿼리문에 작성해본 결과 , 컬럼을 작성했을 경우 결과에서도 컬럼이 함께 나온다는 것을 확인 할 수 있었습니다. 이런 것은 문제를 풀다보면 결과에 컬럼이 같이 표기가 되어야 하는건지 아닌지를 구분해서 해야하는 것인지 궁금합니다 .비전공자라 다소 질문에 부족한 부분이 있을 수 있는데, 답변 주시면 감사하겠습니다 🙂
-
해결됨초보자를 위한 BigQuery(SQL) 입문
2-6. 연습 문제 1~3번
type2 null이 있음에도 불구하고, count시 값이 0으로 노출됩니다.[테이블 미리보기][쿼리 결과] [엑셀 파일]*맥 압축파일을 윈도우 환경에서 오픈해서 그런지, 파일 상태가 이상해요.값이 이렇게 들어갈 수가 있나요?
-
미해결FastAPI 완벽 가이드
Update(수정)용 모델 질문 드립니다.
안녕하세요 교수님강의를 통해 많은 도움을 받고 있는 수강생입니다.수정 기능 구현 시, 전체 데이터를 Body에 담아 보내는 방식은 대용량 파일이나 멀티파트 폼 데이터 처리 시 효율성이 떨어지는 경험을 했습니다. 그래서 모든 필드를 Optional로 설정하여 부분 수정을 허용하게 하면 벨리데이션(Validation) 로직이 복잡해지는 문제가 발생했습니다. 현업에서는 어떤 식으로 업데이트 코드 스타일을 관리하는 것이 표준인지 교수님의 조언을 듣고 싶습니다.감사합니다.
-
미해결데이터베이스 MSSQL
SQL server 설치 오류
안녕하세요. Windows PowerShell 2.0이 서비스 종료하여 설치 오류가 떴는데 어떻게 해야하나요?
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
실무팁 - 등록자,수정자 컬럼 관리 관련 질문입니다.
실무에서 등록일,수정일, 등록자, 수정자 4개 컬럼을 테이블 별로 만들어서 쓰라고 하셨는데1) 모든 테이블에 4개 컬럼은 만든다 생각해도 되는지?2) 유지보수 상 운영 테이블을 직접 수정하는 경우가 있었는데 이때 MySQL 워크벤치 에서 직접 수정하는 경우는 일일히 의식해서 set에 updated_by 를 넣어주는게 최선인지??궁금합니다.
-
해결됨초보자를 위한 BigQuery(SQL) 입문
안녕하세요! 11번 문제 query문에 관해 질문드립니다
저 같은 경우 가장 많은 type1이 뭐냐는 질문에 max함수를 이용했는데, 선생님은 count랑 order by로 사용하셨더라고요. max함수를 사용하지 않은 이유가 있으신가요? 아래는 제가 작성한 query입니다SELECT MAX(type1) FROM `basic.pokemon` WHERE type2 is not null
-
미해결FastAPI 완벽 가이드
API 라우트 설계 시 중첩 구조 분리 기준 질문
안녕하세요 교수님items나 users처럼 딱 떨어지는 리소스는 분리가 쉽지만, 실제로는 모델끼리 얽혀 있는 경우가 많아 라우팅이 모호해지곤 합니다.예를 들어, /products라는 경로가 있음에도 불구하고 특정 맥락에 따라 /users/{user_id}/products와 같이 nested 방식 으로 접근해야 하는 상황이 자주 발생하는데요. (반대인 경우도 발생)이렇게 데이터가 연결되어 있을 때 어디까지 경로를 중첩시킬지, 혹은 어느 시점에 라우트를 완전히 분리해야 할지 교수님만의 노하우나 팁이 있으실까요? 실무적인 관점에서 라우트 설계의 명확한 기준을 잡고 싶어 질문 드립니다.추가로 데이터 모델과 라우트 이름을 보통 같게 하나요?나중에 리팩토링 할 때 문제가 없을까요?감사합니다!
-
미해결실무에서 바로 쓰는 SQL [SQL200제 저자 직강]
오라클18c로 진행해도 괜찮을까요?
안녕하세요 혹시 오라클18c로 진행하더라도 문제 없을까요?
-
해결됨BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)
[과제] 퍼널 PIVOT 테이블 작성하기
안녕하세요 카일님!강의 너무 잘 듣고 있습니다! 온오프라인에서 SQL실무와 관련된 강의가 없어 많이고민했는데 카일님 강의 덕분에 입문 강의 부터 정말 많이 배웠습니다 ㅜㅜ! 아래 일자별 퍼널을 PIVOT 해보는 쿼리를 짜봤는데 피드백 주시면 너무 감사하겠습니다!더불어서 PIVOT을 할 때 제가 아래 주석처리한 것들도 디버깅 했을때는 동일하게 나왔는데혹시나 실무단에서 어떻게 하는건 조심해야한다! 라는 부분이 있을지도 궁금합니다..! 항상 감사합니다 :) #일자별 퍼널 PIVOT WITH base AS ( SELECT event_date, event_timestamp, event_name, user_id, user_pseudo_id, platform, MAX(IF(param.key = "firebase_screen", param.value.string_value, NULL )) AS firebase_screen, -- MAX(IF(param.key = "food_id", param.value.int_value, NULL )) AS food_id, MAX(IF(param.key = "session_id", param.value.string_value, NULL )) AS session_id, -- param.key AS screen, -- param.value.string_value AS string_value, -- param.value.int_value AS int_value, FROM `advanced.app_logs` CROSS JOIN UNNEST(event_params) AS param WHERE -- event_date = "2022-08-01" #적은 데이터로 쿼리를 작성하기 위해 만들어둔 조건 event_date BETWEEN "2022-08-01" AND "2022-08-18" GROUP BY ALL ), filter_event_and_concat_event_and_screen AS ( SELECT * EXCEPT(event_name,firebase_screen), 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") ), event_by_user_cnt_by_date AS ( --event_name + screen (필요한 이벤트만 WHERE 조건에 걸어서 사용) --step_number + COUNT --step_number : CASE WHEN 사용해 숫자 지정 1~6 (welcome, home, food_category, restaurant, cart ) SELECT -- DISTINCT event_name_with_screen, #해당 열 Unique값 확인 가능 event_date, #일자별로 퍼널별 유저수 쿼리 event_name_with_screen, -- event_datetime, user_pseudo_id, CASE WHEN event_name_with_screen = "screen_view-welcome" THEN 1 WHEN event_name_with_screen = "screen_view-home" THEN 2 WHEN event_name_with_screen = "screen_view-food_category" THEN 3 WHEN event_name_with_screen = "screen_view-restaurarnt" THEN 4 WHEN event_name_with_screen = "screen_view-cart" THEN 5 WHEN event_name_with_screen = "click_payment-cart" THEN 6 ELSE NULL END AS step_number, # 퍼널 단계 표시 COUNT(DISTINCT user_pseudo_id) AS cnt FROM filter_event_and_concat_event_and_screen GROUP BY ALL --screen_view-restaurant/screen_view-food_detail/screen_view-search/screen_view-search_result 도 퍼널 정의에 어떻게 넣을지 생각해보고 단계에 넣어보기 > 고객이 어떤 흐름으로 움직이는지 확인해보기 HAVING step_number IS NOT NULL ORDER BY event_date ) SELECT event_date, SUM(IF(event_name_with_screen = 'screen_view-welcome', cnt, NULL)) AS screen_view_welcome, SUM(IF(event_name_with_screen = 'screen_view-home', cnt, NULL)) AS screen_view_home, SUM(IF(event_name_with_screen = 'screen_view-food_category', cnt, NULL )) AS screen_view_food_category, SUM(IF(event_name_with_screen = 'screen_view-restaurarnt', cnt, NULL)) AS screen_view_restaurarnt, SUM(IF(event_name_with_screen = 'screen_view-cart', cnt, NULL)) AS screen_view_cart, SUM(IF(event_name_with_screen = 'click_payment-cart', cnt, NULL)) AS click_payment_cart, -- MAX(IF(event_name_with_screen = 'screen_view-welcome', cnt, NULL)) AS screen_view_welcome, -- MAX(IF(event_name_with_screen = 'screen_view-home', cnt, NULL)) AS screen_view_home, -- 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-restaurarnt', cnt, NULL)) AS screen_view_restaurarnt, -- 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(CASE WHEN event_name_with_screen = 'screen_view-welcome' THEN cnt END) AS screen_view_welcome, -- MAX(CASE WHEN event_name_with_screen = 'screen_view-home' THEN cnt END) AS screen_view_home, -- MAX(CASE WHEN event_name_with_screen = 'screen_view-food_category'THEN cnt END) AS screen_view_food_category, -- MAX(CASE WHEN event_name_with_screen = 'screen_view-restaurarnt'THEN cnt END) AS screen_view_restaurarnt, -- MAX(CASE WHEN event_name_with_screen = 'screen_view-cart'THEN cnt END) AS screen_view_cart, -- MAX(CASE WHEN event_name_with_screen = 'click_payment-cart'THEN cnt END) AS click_payment_cart FROM event_by_user_cnt_by_date GROUP BY event_date ORDER BY event_date ;
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
구글이 이메일 변경을 허용하는 이유
이번에 설계 1편에서 자연 키와 대리 키 부분을 학습하면서,최근 구글이 이메일 변경을 부분적으로 검토하고 있다는 뉴스가 떠올랐습니다.예전에는 이메일 변경이 거의 불가능했던 이유가이메일을 자연 키처럼 사용해왔기 때문이라고 이해해도 될까요?그리고 지금에 와서는 어떤 구조적 변화나 트레이드오프를 통해이메일 변경이 가능해졌는지도 궁금합니다.
-
미해결김영한의 실전 데이터베이스 입문 - 모든 IT인을 위한 SQL 첫걸음(SQL부터 차근차근)
INSERT INTO 관련 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]insert into 할때 괄호로 열을 지정하지않고 생략한다면 table을 생성할때 작성한 열 순서대로만 넣어야하는건가요?? 강의에 열의 순서라는게 그걸 뜻하는게 궁금해요
-
해결됨[백문이불여일타] 데이터 분석을 위한 기초 SQL
수강기간 변경 요청
안녕하세요. 앱으로 수강을 해서 수강 도중에 기간이 무제한으로 바뀐 줄 모르고 들었는데요. 12월 29일자로 만료가 되긴했는데 혹시 수강기한 변경이 가능하다면 변경해주시면 감사하겠습니다!
-
미해결실무에서 바로 쓰는 SQL [SQL200제 저자 직강]
책이 필요한가요??
안녕하세요,1. 책만 있어도되는건지, 2. 강의만 들어도되는건지,3. 책이랑 강의를 둘다 보는게 맞는건지궁금합니다!
-
해결됨김영한의 실전 데이터베이스 - 기본편
GROUP BY 기준 컬럼
SELECTu.name AS user_name, SUM(o.quantity * p.price) AS total_purchase_amountFROM orders oJOIN users u ON o.user_id = u.user_idJOIN products p ON o.product_id = p.product_idGROUP BYu.nameORDER BY total_purchase_amount DESC;이구문에서 GROUP BY를 user_id로 묶는게 더 안전하지 않나 생각이 들어서 질문드립니다.name은 동명이인이 있다면 문제가 되지 않을까 궁금합니다 선생님혹시 name으로 GROUP BY를 사용해야하는 이유가 있는지 궁금합니다!