묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실습으로 손에 잡히는 SQLD의 정석(2과목)
ㅠㅠ 이놈의 환경설정;;안하면 안되나요? 아무것도 못하고 있어요;;
너무 어렵네요...ㅠㅠ무슨 docker-compose.yml 이거 실행하는것도 못하고 있어요...파일위치 : C:\Users\orm64\Documents\Scanned DocumentsPS C:\WINDOWS\system32> docker compose up -dno configuration file provided: not foundPS C:\WINDOWS\system32> C:\Users\orm64\Documents\Scanned DocumentsC:\Users\orm64\Documents\Scanned : 'C:\Users\orm64\Documents\Scanned' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 이름이 정확한지 확인하고 경로가 포함된 경우 경로가 올바른지 검증한 다음 다시 시도하십시오.위치 줄:1 문자:1+ C:\Users\orm64\Documents\Scanned Documents+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (C:\Users\orm64\Documents\Scanned:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundExceptionPS C:\WINDOWS\system32> C:\Users\orm64\Documents\ScannedC:\Users\orm64\Documents\Scanned : 'C:\Users\orm64\Documents\Scanned' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 이름이 정확한지 확인하고 경로가 포함된 경우 경로가 올바른지 검증한 다음 다시 시도하십시오.위치 줄:1 문자:1+ C:\Users\orm64\Documents\Scanned+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (C:\Users\orm64\Documents\Scanned:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundExceptionPS C:\WINDOWS\system32> pwdPath----C:\WINDOWS\system32PS C:\WINDOWS\system32> C:\Users\orm64\Documents\Scanned DocumentsC:\Users\orm64\Documents\Scanned : 'C:\Users\orm64\Documents\Scanned' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 이름이 정확한지 확인하고 경로가 포함된 경우 경로가 올바른지 검증한 다음 다시 시도하십시오.위치 줄:1 문자:2+ C:\Users\orm64\Documents\Scanned Documents+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (C:\Users\orm64\Documents\Scanned:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundExceptionPS C:\WINDOWS\system32> docker compose up -dno configuration file provided: not foundPS C:\WINDOWS\system32> docker run hello-worldHello from Docker!This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID: https://hub.docker.com/For more examples and ideas, visit: https://docs.docker.com/get-started/PS C:\WINDOWS\system32> wsl --update업데이트 확인 중입니다.Linux용 Windows 하위 시스템 최신 버전이 이미 설치되어 있습니다.PS C:\WINDOWS\system32> docker run hello-world
-
해결됨BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)
리텐션 연습 문제
리텐션 연습 문제 푸는 중에 어려운 점이 있어 질문 남깁니다!click_payment 이벤트 기준으로 cohort 리텐션 분석 쿼리 올바르게 작성했을까요? 유저수의 합계가 0주차일때 안 맞는 거 같습니다... 코호트 분석 시각화 했을 때 저렇게 비어 보이는 경우에는 어떻게 해석하면 좋을까? WITH base AS ( SELECT DISTINCT user_id, event_name, TIMESTAMP_MICROS(event_timestamp) AS event_datetime, DATE(TIMESTAMP_MICROS(event_timestamp)) AS event_date, user_pseudo_id FROM `advanced.app_logs` WHERE event_date > '2022-08-01' AND event_name = 'click_payment' ) ,first_week_data AS ( SELECT DISTINCT user_pseudo_id, DATE_TRUNC(MIN(event_date) OVER(PARTITION BY user_pseudo_id),WEEK(MONDAY)) AS first_week, DATE_TRUNC(event_date,WEEK(MONDAY)) AS event_week FROM base ) ,weeks_after_first_week_data AS ( SELECT *, DATE_DIFF(event_week,first_week,WEEK) AS weeks_after_first_week FROM first_week_data ) ,active_user_count AS ( SELECT first_week, weeks_after_first_week, COUNT(DISTINCT user_pseudo_id) AS active_users FROM weeks_after_first_week_data GROUP BY ALL ) ,cohort_user_count AS ( SELECT *, FIRST_VALUE(active_users) OVER(PARTITION BY first_week ORDER BY weeks_after_first_week) AS cohort_users FROM active_user_count ) SELECT *, ROUND(SAFE_DIVIDE(active_users,cohort_users),2) AS rentention_rate FROM cohort_user_count
-
미해결윤재성의 Oracle SQL Database 11g PL/SQL Developer
XE 21C 버전 다운받아 사용중인데, 저 테이블들이 없습니다..
현재 4강 듣는 중입니다.현재 오라클 서버에서 받을 수 있는게 21C 밖에 없더라구요.이걸로 진행해보려 하는데, 강사님께서 활용하시는 테이블 정보가 없는데,, 이거 없으면 앞으로 진행이 안될거 같은데 괜찮을까요? 테이블을 임의로 넣을 수는 없을까요?
-
해결됨초보자를 위한 BigQuery(SQL) 입문
5-6. JOIN 연습문제 중 2번에서 왜 ORDER BY 2 DESC 를 쓰는지 알 수 있을까요?
ORDER BY 2 DESC를 쿼리문에 추가한 것과 하지 않은 것이 동일한 결과가 나오는 것 같아 질문드립니다!
-
해결됨BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)
3-10. 코호트 리텐션 SQL 쿼리 작성하기
코호트 리텐션 시각화하기 부분에서피벗테이블의 값에 설정에 AVERAGE 하는 이유는 무엇인가요?
-
해결됨BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)
리텐션 SQL 작성하기
쿼리 작성하다가 DISTINCT에 대해 궁금한 점이 생겨 질문 남깁니다!WITH 문 base 와 first_week_data에서 DISTINCT는 중복 방지 즉, 비용 절약을 위해서 쓰는 것으로 이해했습니다. 그렇다면 DISTINCT를 쓰지 않아도 쿼리상 문제는 없는 게 맞을까요?user_count에서 DISTINCT는 유니크 유저수를 위해 꼭 사용해야하는 것으로 이해했습니다.WITH base AS ( SELECT DISTINCT user_id, event_name, DATETIME(TIMESTAMP_MICROS(event_timestamp),'Asia/Seoul') AS event_datetime, DATE(DATETIME(TIMESTAMP_MICROS(event_timestamp),'Asia/Seoul')) AS event_date, user_pseudo_id FROM advanced.app_logs ) ,first_week_data AS ( SELECT DISTINCT user_pseudo_id, DATE_TRUNC(MIN(event_date) OVER (PARTITION BY user_pseudo_id),WEEK(MONDAY)) AS first_week, DATE_TRUNC(event_date,WEEK(MONDAY)) AS week_date FROM base ) ,first_week_diff_data AS ( SELECT *, DATE_DIFF(week_date,first_week,week) AS first_week_diff FROM first_week_data ) ,user_count AS ( SELECT first_week_diff, COUNT(DISTINCT user_pseudo_id) AS user_cnt FROM first_week_diff_data GROUP BY ALL ) ,first_user_count AS ( SELECT first_week_diff, user_cnt, FIRST_VALUE(user_cnt) OVER (ORDER BY first_week_diff) AS first_user_cnt FROM user_count ) SELECT *, ROUND(SAFE_DIVIDE(user_cnt,first_user_cnt),2) AS rentention_ratio FROM first_user_count
-
해결됨오라클 SQL 데이터베이스
ORA-01017 오류 때문에 진도가 못나가고있습니다.!
다 맞게 작성한것같은데 hr hr 이고 이름 비번도요,뭐가 잘못된걸까요 ㅠㅠ
-
해결됨BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)
2-11. 윈도우 함수 연습문제 7번
DATETIE_DIFF 함수 사용할 때 오류가 발생합니다무엇이 잘못되었을까요..?WITH base AS ( SELECT event_date, event_timestamp, DATETIME(TIMESTAMP_MICROS(event_timestamp),'Asia/Seoul') AS event_datetime, event_name, user_id, user_pseudo_id FROM advanced.app_logs ) , prev_event_datetime AS ( SELECT *, LAG(event_datetime) OVER(PARTITION BY user_pseudo_id ORDER BY event_datetime) AS prev_event_datetime FROM base ) SELECT *, DATETIME_DIFF(event_datetime,prev_event_datetime, SECOND) AS second_diff FROM prev_event_datetime
-
해결됨[백문이불여일타] 데이터 분석을 위한 중급 SQL
Average Population of Each Continent 에대해서 질문
이 문제에서 Group by 의 필요성은 continent name 과 population avg 를 둘다 뽑아야하니ㅣ그룹을 시켜주는건가요? Group by의 정확한 쓰임을 여기서 잘 모르겠습니다. - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
해결됨BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)
1-11 현황 파악 분석하기
현황 파악하기 링크 다시 올립니다!피드백 부탁드립니다~
-
해결됨BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)
1-11. 현황 파악하기
https://www.notion.so/FOODIE-APP-0186b8e16c164701afc3d7afd66a551f?pvs=4현황 파악해봤습니다! 피드백 부탁드립니다~
-
해결됨초보자를 위한 BigQuery(SQL) 입문
4-5 시간 데이터 연습 문제 2번
별 것 아닌 내용일 수도 있지만 의문이 생겨 질문 남깁니다. 2번에서 오전 6시와 오후 6시 사이의 배틀 수를 계산하라고 했는데, 그럴 때 EXTRACT에서 < 18 이 되어야 하지 않는지 질문드립니다. 예를 들어, EXTRACT <= 18을 사용하면 18시 40분에 일어난 배틀도 카운트가 돼서 오류가 생길 수도 있다고 생각이 들었습니다.
-
해결됨BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)
3-13. 리텐션 분석 과제
"3-13. 리텐션 과제 : 꼭 풀어보시고 제출해주세요" 강의 과제 완료하여 제출 합니다. 링크 : 리텐션 분석 과제 "쿼리 검토 요청"이라고 기재되어 있는 부분 쿼리에 이상이 없는지 확인해주시면 감사하겠습니다!그리고 과제하다가 궁금한 점이 있어 "문의사항"도 남겨두었습니다. 해당 부분도 답변 부탁드립니다! 전반적으로 리텐션 분석을 진행하는 과정이 올바른지에 대해서도 피드백을 주시면 많은 도움이 될 것 같습니다! 강의를 통해 정말 많이 배울 수 있었습니다!감사합니다.
-
해결됨[백문이불여일타] 데이터 분석을 위한 중급 SQL
w3schools 에서 쿼리 작성 질문
CASE 문 마지막에 콤마 하고 쓰면 에러가나요 , *를 지우면 에러가안나구요. 왜그런걸까요? - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
해결됨BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)
1-9. 퍼널 SQL 쿼리 작성하기
강의 보면서 '퍼널별 유저 수 집계' 쿼리 작성했는데 결과값이 올바르게 나오지 않아요... 어디서 잘못 되었을까요?WITH base AS( SELECT event_date, event_name, DATETIME(TIMESTAMP_MICROS(event_timestamp),'Asia/Seoul') as event_timestamp, event_param, user_id, user_pseudo_id, platform, -- event_parma.key PIVOT 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 GROUP BY ALL) -- event_name + screen (필요한 이벤트만 where 조건에 걸어서 사용) ,filter_event as( SELECT * except(event_name,firebase_screen), concat(event_name,'-',firebase_screen) AS event_name_with_screen FROM base WHERE event_name in ('screen_view','click_payment')) SELECT event_name_with_screen, -- step_number 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-restaurant' then 4 when event_name_with_screen='screen_view-cart' then 5 when event_name_with_screen='click_pavement-cart' then 6 else null end AS Step_number, count(DISTINCT user_pseudo_id) as cnt FROM filter_event GROUP BY ALL HAVING step_number IS NOT NULL
-
해결됨BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)
[과제] 퍼널 쿼리(피벗테이블 적용) 작성
# base 쿼리 작성 전 생각 흐름 ---------------------------------------------------- ## 1. 테이블 내 데이터 구조 파악 -- select -- * -- from advanced.app_logs -- where -- event_date = '2022-08-01' -- 목적에 맞는 쿼리를 기존 데이터로 구현할 수 있는지 여부 확인 -- 연습문제 결과물 컬럼인 'event_name_with_screen', 'step_number', 'cnt'는 기존 컬럼에 없음. -- 기존 컬럼에 없기 때문에 해당 컬럼을 어떻게 구현해내야 할 지 생각해보기 ## 2. event_name_with_screen 컬럼 구현 순서 및 방법 -- event_name_with_screen는 다음과 같은 value를 가짐 -- 1. screen_view-welcome -- 2. screen_view-home -- 3. screen_view-food_vategory -- 4. screen_view-restaurant -- 5. screen_view-cart -- 6. click_payment-cart -- 위 6가지 value가 기존 컬럼에 있는지 확인해보기 -- 있는 경우 -- 기존 컬럼 활용 -- 없는 경우 -- concat 등으로 새롭게 구현 -- 연습문제에서는 event_name과 event_params.key에 있는 value를 concat 했음. -- event_params.key는 데이터타입이 struct이기 때문에 unnest 필요. -- select -- event_name, -- unnest_event_params -- from advanced.app_logs -- cross join unnest(event_params) as unnest_event_params -- where -- event_date = '2022-08-01' -- unnest 결과물에 피봇테이블 적용하기 -- 피봇테이블로 만들면 직관적으로 event_name과 concat 하기가 용이해서. -- select -- event_name, -- event_date, -- event_timestamp, -- user_pseudo_id, -- max(if(unnest_event_params.key = 'firebase_screen', unnest_event_params.value.string_value, null)) as firebase_screen, -- max(if(unnest_event_params.key = 'food_id', unnest_event_params.value.int_value, null)) as food_id, -- max(if(unnest_event_params.key = 'session_id', unnest_event_params.value.string_value, null)) as session_id -- from advanced.app_logs -- cross join unnest(event_params) as unnest_event_params -- where event_date between '2022-08-01' and '2022-08-18' -- group by 1, 2, 3, 4 ---------------------------------------------------- with base as ( select event_name, event_date, event_timestamp, user_pseudo_id, max(if(unnest_event_params.key = 'firebase_screen', unnest_event_params.value.string_value, null)) as firebase_screen, max(if(unnest_event_params.key = 'food_id', unnest_event_params.value.int_value, null)) as food_id, max(if(unnest_event_params.key = 'session_id', unnest_event_params.value.string_value, null)) as session_id from advanced.app_logs cross join unnest(event_params) as unnest_event_params where event_date between '2022-08-01' and '2022-08-18' group by 1, 2, 3, 4 ), base2 as ( select *, concat(event_name, '-', firebase_screen) as event_name_with_screen from base ) ## 일자별 퍼널 쿼리 , base3 as (select event_date, event_name_with_screen, # 2개 이상 조건을 한 개 컬럼에 적용해야 하기 때문에 case when 사용 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-restaurant' 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 컬럼명) 사용 count(distinct user_pseudo_id) as cnt from base2 group by all # null 값 제외하기 위해서 그룹에 필터링 거는 having 사용 having step_number is not null # 1일부터 보고 싶기 때문에 오름차순(asc) 적용 order by 1 asc) ## 일자별 쿼리 (피벗테이블 적용) select event_date, max(if(event_name_with_screen = 'screen_view-welcome', cnt, 0)) as screen_view_welcome, max(if(event_name_with_screen = 'screen_view-home', cnt, 0)) as screen_view_home, max(if(event_name_with_screen = 'screen_view-food_category', cnt, 0)) as screen_view_food_category, max(if(event_name_with_screen = 'screen_view-restaurant', cnt, 0)) as screen_view_restaurant, from base3 group by all order by 1 asc
-
해결됨FastAPI 완벽 가이드
WSGI, ASGI 와 미들웨어 간의 관계
안녕하세요! 강의 잘 보고 있습니다. 강의를 보는 중에 헷갈리는 개념이 있어서 질문드려요!올려주신 강의 중 미들웨어 챕터 부분을 보고 있어요. 그런데 문득 미들웨어와 uvicorn, gunicorn, hypercorn 과 같은 WSGI, ASGI 서버 간의 관계에 대해서 궁금증이 들었습니다. 보통 언어에 상관없이 웹 통신을 한다라고 하면 아래와 같은 구조로 통신한다고 볼 수 있잖아요?(DB가 있다고 가정)"""Client(Web Browser) ---> Web Server ---> Web Application Server ---> DB"""그리고 파이썬에서는 uvicorn, gunicorn 과 같은 WSGI, ASGI 서버들이 Web Server 역할을, Flask, FastAPI 와 같은 프레임워크 서버들이 Web Application Server의 역할을 한다고 알고 있습니다. 그리고 저 Web Server 요소가 미들웨어라고 정의한다고 알고 있었는데요! 그런데 FastAPI 공식문서 상에서는 미들웨어라는 것을 소개할 때, "모든 요청 또는 응답에 대해서 사전 또는 사후 처리 로직을 추가할 때 사용하는 것" 이라고 소개를 하면서 문득 "그러면 여기서 이야기하는 미들웨어랑 uvicorn, gunicorn 과는 어떤 차이점이 있는거지?" 하면서 헷갈리더라구요. 자바에서는 미들웨어라는 개념이 JVM 위에서 동작하면서 DB 연결, TCP/IP 연결 등과 같이 다른 소프트웨어(ex.애플리케이션)가 잘 동작하도록 지원해주는 소프트웨어라고 알고 있는데요! 만약 이러한 관점에서 본다면 uvicorn, gunicorn 과 같은 WSGI 또는 ASGI 서버들도 미들웨어라고 볼 수는 없는 걸까요? ChatGPT 한테 물어보았을 때는 엄연히 다른 개념이라고 하는데.. 정확히 차이점을 잘 모르겠어서요. 답변 해주시면 감사하겠습니다! (참고로 저는 파이썬으로만 오랫동안 개발해와서 자바나 다른 언어 관련해서는 잘 모를 수도 있어서 다른 언어에 대한 비유로 답변 주시면 제가 잘 이해를 못할 수도 있습니다!)
-
해결됨BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)
1-6. 데이터 PIVOT 연습문제
빅쿼리 날짜 타입 입력할때 큰따옴표, 작은 따옴표 둘 중에 아무거나 입력해도 상관없을까요?
-
해결됨BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)
1-4 ARRY ,STRUCT 연습문제
어느 부분에서 오류 났는지 모르겠어요!
-
해결됨[백문이불여일타] 데이터 분석을 위한 기초 SQL
해커랭크 Employee Salaries 문제 질문
다음과 같이 쓴게 정답 인데요 SELECT nameFROM EmployeeWHERE salary > 2000AND months < 10ORDER BY employee_id ASC여기서 왜 WHERE salary > 2000, months < 10 처럼 콤마로 이어질 순 없는건가요? WHERE 절에서 두가지 조건이 붙으면 무조건 AND나 OR 로 연결해야하는건가요?- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.