묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결SQL 개발자 (SQLD) 자격증 따기 Part.2
Truncate는 DDL아닌가요?
Truncate는 권한과 관련이 없는데 DCL 인 것이 이해가 가지 않아서 찾아보니 모든 문서에서 Truncate는 DDL이라고 나오네요. 이게 실수라면 너무 치명적 아닌가요;;;정말 중요한거라고 하시면서.... 갑자기 수업에 대한 신뢰가 와장창 ㅠㅜ
-
해결됨SQL 코딩테스트를 위한 첫 걸음
깃헙 데스크탑, MYSQL 워크벤치 연동
설명이 너무 생략되어 있어서 이해가 안됩니다.깃헙을 처음 써보는데중간에 생략한 부분이 많네요.윈도우 환경에서 다시 상세히 설명 부탁드립니다.
-
미해결다양한 사례로 익히는 SQL 데이터 분석
CLI로 ga_export.sql 쉽게 불러오기
안녕하세요 강사님, 오늘부터 새로 강의를 듣게 되었는데 완강 목표로 열심히 듣겠습니다 ㅎㅎ강의 초반 환경설정에서 ga_export.sql이 large text여서 Dbeaver에서 스크립트 실행할 때 java heap space 부족 에러가 발생하더라고요.이 때 터미널로 쉽게 불러올 수 있는 방법을 찾았고, 다른 수강생분들에게도 도움이 될 것 같아 공유드립니다.아래 스샷처럼 터미널에서 sudo -iu postgres psql 입력 후 \i [ga_export.sql이 위치한 경로] 를 입력하면 쉽게 ga 데이터를 불러올 수 있습니다.
-
미해결[백문이불여일타] 데이터 분석을 위한 고급 SQL
리트코드 184번문제
안녕하세요 184번을 풀다가 의문이 생겨서요저는 LEFT JOIN을 통해서 답을 얻으려고 했는데 답이 나오진 않더라구요 LEFT JOIN 을 통해서 답을 구할 수 있는 방법은 없나요..?SELECT de.name as Department, em.name as Employee, em.Salary FROM employee as em LEFT JOIN department as de ON em.departmentId=de.id WHERE salary = (SELECT MAX(salary) FROM employee) LIMIT 3;
-
미해결데이터 분석 SQL Fundamentals
with temp_01 as () 관련 질문입니당
안녕하세요 선생님혹시 with temp_01 as ()를 사용해야만 하는, 특정 상황이 있을까요?
-
미해결SQL 개발자 (SQLD) 자격증 따기 Part.1
속성의 특징과 다중값 속성
속성의 특징에 더이상 분리되지 않는 단위이고 하나의 값만 가진 다고 되어 있는데 그렇다면 다중값 속성 같은 것은 그것에 위배 되는 것 아닌가요?
-
해결됨비전공자의 전공자 따라잡기 - 데이터베이스,SQL
limit offset 단점
안녕하세요 제로초님.항상 질 좋은 강의 감사합니다.offset 방식으로 pagination 구현 시 데이터가 누락될 수 있다는 단점을 설명해주시면서soft delete 방식으로 구현 시에는 해당 이슈가 괜찮다고 설명해주셨는데요.soft delete 방식으로 구현 시에도 동일한 이슈가 발생할꺼라는 생각이 들어 질문을 남깁니다.soft delete 방식으로 구현 시에도 조회 쿼리를 날릴 때, deleteAt이 null인 값인 data들은 filter 되기 때문에 동일한 이슈가 발생할꺼 같은데 맞을까요?추가로 삭제 연산을 soft delete 방식으로 구현 시, on delete option을 "casecade"로 설정했다면 부모 row가 삭제되었을 때, 자식 row도 soft delete 처리가 되나요?아니면 set null 방식으로 처리가 되나요?
-
미해결데이터 분석 SQL Fundamentals
스칼라 서브쿼리 관련
안녕하세요, 강의 잘 듣고 있습니다.스칼라 서브쿼리를 성능문제로 지양해서 써야한다고 말씀하셨는데 혹시 더 구체적으로 알 수 있을지요?스칼라 서브쿼리나 다른 서브쿼리나 어차피 메인 테이블을 하나씩 읽으면서 조건으로 달리 테이블을 처리하는건 같지 않나요?DB입장에서 혹시 실행계획을 세울 때 어떻게 차이가 날까요?제대로 질문을 하였는지 잘 모르겠는데 답변 주시면감사하겠습니다.
-
미해결다양한 사례로 익히는 SQL 데이터 분석
컬럼의 뜻에 대해 질문 드립니다.
채널별 고유/주문 사용자 건수와 매출 금액 및 비율 SQL로 구하기 2 를 학습하면서/************************************ 채널별 고유 사용자 건수와 매출금액 및 비율, 주문 사용자 건수와 주문 매출 금액 및 비율 채널별로 고유 사용자 건수와 매출 금액을 구하고 고유 사용자 건수 대비 매출 금액 비율을 추출. 또한 고유 사용자 중에서 주문을 수행한 사용자 건수를 추출 후 주문 사용자 건수 대비 매출 금액 비율을 추출 *************************************/ with temp_01 as ( select a.sess_id, a.user_id, a.channel_grouping , b.order_id, b.order_time, c.product_id, c.prod_revenue from ga_sess a left join orders b on a.sess_id = b.sess_id left join order_items c on b.order_id = c.order_id where a.visit_stime >= (:current_date - interval '30 days') and a.visit_stime < :current_date ) select channel_grouping , sum(prod_revenue) as ch_amt -- 채널별 매출 --, count(distinct sess_id) as ch_sess_cnt -- 채널별 고유 세션 수 , count(distinct user_id) as ch_user_cnt -- 채널별 고유 사용자 수 --, count(distinct case when order_id is not null then sess_id end) as ch_ord_sess_cnt -- 채널별 주문 고유 세션수 , count(distinct case when order_id is not null then user_id end) as ch_ord_user_cnt -- 채널별 주문 고유 사용자수 --, sum(prod_revenue)/count(distinct sess_id) as ch_amt_per_sess -- 접속 세션별 주문 매출 금액 , sum(prod_revenue)/count(distinct user_id) as ch_amt_per_user -- 접속 고유 사용자별 주문 매출 금액 -- 주문 세션별 매출 금액 --, sum(prod_revenue)/count(distinct case when order_id is not null then sess_id end) as ch_ord_amt_per_sess -- 주문 고유 사용자별 매출 금액 , sum(prod_revenue)/count(distinct case when order_id is not null then user_id end) as ch_ord_amt_per_user from temp_01 group by channel_grouping order by ch_user_cnt desc;위 쿼리의 쿼리 뜻이 잘 이해가 안되어 질문 드립니다., sum(prod_revenue)/count(distinct user_id) as ch_amt_per_user -- 접속 고유 사용자별 주문 매출 금액, sum(prod_revenue)/count(distinct case when order_id is not null then user_id end) as ch_ord_amt_per_user이 두 항목은 각각 접속 고유 사용자별 주문 매출 금액,주문 고유 사용자별 매출 금액이라 명칭 되어 있는데, 어떤 의미를 가지고 있는 것인지 잘 이해가 되지 않아 질문 드립니다.접속 고유 사용자별 주문 매출 금액 : 사용자 대비 30일이내 매출 금액주문 고유 사용자별 매출 금액 : 주문 대비 30일 이내 매출 금액이렇게 이해를 하면 될런지요?
-
미해결다양한 사례로 익히는 SQL 데이터 분석
group by에 대해 질문 드립니다.
사용자별 월별 세션 접속 횟수의 구간별 분포 집계 SQL로 구하기 - 02위 과정을 학습하고 있습니다select month ,case when monthly_user_cnt = 1 then '0_only_first_session' when monthly_user_cnt between 2 and 3 then '2_between_3' when monthly_user_cnt between 4 and 8 then '4_between_8' when monthly_user_cnt between 9 and 14 then '9_between_14' when monthly_user_cnt between 15 and 25 then '15_between_25' when monthly_user_cnt >= 26 then 'over_26' end as gubun , count(*) as user_cnt from temp_01 group by month, case when monthly_user_cnt = 1 then '0_only_first_session' when monthly_user_cnt between 2 and 3 then '2_between_3' when monthly_user_cnt between 4 and 8 then '4_between_8' when monthly_user_cnt between 9 and 14 then '9_between_14' when monthly_user_cnt between 15 and 25 then '15_between_25' when monthly_user_cnt >= 26 then 'over_26' end order by 1, 2;위 쿼리에서 group by 항목이 이해가 잘 안되서 질문 드립니다.위와 같이 그룹을 지으면일자 + monthly_user_cnt 의 조합으로 그룹들이 만들어짐select에서select month ,case when monthly_user_cnt = 1 then '0_only_first_session' when monthly_user_cnt between 2 and 3 then '2_between_3' when monthly_user_cnt between 4 and 8 then '4_between_8' when monthly_user_cnt between 9 and 14 then '9_between_14' when monthly_user_cnt between 15 and 25 then '15_between_25' when monthly_user_cnt >= 26 then 'over_26' end as gubun위 쿼리로 넘어온 데이터(아직 컬럼으로 만들어지지 않은채 각 그룹별로 정의되어 넘어온 데이터)에 컬럼명을 붙여줌위와 같은 동작을 하는게 맞는지요?제가 이해하는게 맞는지 알고 싶습니다.
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL 문제풀이
Set2 4번문제 질문 - New Companies
-조인에 대한 개념이 약간 헤깔려서 문의드립니다.-저는 아래와 같이 left outer join시에 senior_manger/MANGER/employee 테이블과의 조인 조건을 아래와 같이 상위의 CODE를 equal 조건으로 넣어야 정확히 일치하는 ROW를 조인할수 있는게 아닌지요?LEFT OUTER JOIN Lead_Manager LM ON (C.COMPANY_CODE=LM.COMPANY_CODE)LEFT OUTER JOIN Senior_Manager SM ON(LM.COMPANY_CODE=SM.COMPANY_CODE AND LM.LEAD_MANAGER_CODE=SM.LEAD_MANAGER_CODE)LEFT OUTER JOIN Manager M ON (SM.COMPANY_CODE=M.COMPANY_CODE AND SM.LEAD_MANAGER_CODE=M.LEAD_MANAGER_CODEAND SM.SENIOR_MANAGER_CODE=M.SENIOR_MANAGER_CODE)LEFT OUTER JOIN Employee E ON (M.COMPANY_CODE=E.COMPANY_CODE AND M.LEAD_MANAGER_CODE=E.LEAD_MANAGER_CODEAND M.SENIOR_MANAGER_CODE=E.SENIOR_MANAGER_CODEANDM.MANAGER_CODE=E.MANAGER_CODE)
-
미해결[백문이불여일타] 데이터 분석을 위한 기초 SQL
higher than 75 marks
안녕하세요 ! order by 해커랭크 문제풀이 2 강의에서select namefrom studentswhere marks > 75order by right (name,3) and ID이렇게 order by에서 컴마 대신에 and를 썼는데 둘의 차이가 무엇인가여? 감사합니다
-
미해결[백문이불여일타] 데이터 분석을 위한 기초 SQL
Q1. Weather Observation Station 6
안녕하세요! 저는 이 문제를 select cityfrom stationwhere city like 'a%' or 'e%' or 'i%' or 'o%' or 'u%'이렇게 풀었는데 답은 city like 'a% or city not like 'e%'....... 이런 식으로 풀었는데 둘의 차이가 무엇인지 알고 싶습니다.
-
미해결데이터 분석 SQL Fundamentals
FROM emp JOIN dep 또는 FROM dep JOIN emp 의 다른 점
안녕하세요 강사님, 조인 실습을 하다가 목적에 따라 FROM 과 JOIN에 들어가는 테이블이 다른 것을 알게되었는데 그 이유과 기준이 궁금합니다."job이 SALESMAN인 직원정보와 직원이 속한 부서명을 가져오기" 의 예시에선 FROM emp JOIN dept로 조인을 하셨다면, "부서명 SALES와 RESEARCH의 소속 직원들의 부서명, 직원번호, 직원명, JOB 그리고 과거 급여 정보 추출"의 예시에선 FROM dept JOIN emp 로 조인을 하셨습니다.감사합니다!
-
미해결다양한 사례로 익히는 SQL 데이터 분석
로드맵을 따라 두 강의를 따라 학습을 하고 있습니다.
데이터 분석 sql fundamentals의 다운받은 자료는 한글이 깨지지 않던데, 지금 강의는 다운받고 압축을 풀어보면 주석에 있는 한글이 다 깨져 있습니다.강의를 보면서 한글이 보일때마다 최대한 수정을 해보려 하는데... 강의에 안보이는 한글 주석들이 꽤 있습니다.저만 그런건지 확인 부탁 드리고 싶습니다.제 환경은 윈도우11, 반디집으로 압축을 풀었습니다.
-
미해결다양한 사례로 익히는 SQL 데이터 분석
현재 모든 판다스 파일에 오류가 발생되는것 같습니다.
어제 장문의 글을 올렸는데 이유는 모르겠으나 찾아볼수가 없어서 다시 작성을 합니다.현재 sqlalchemy의 문법 강제성의 이유로 2.0.0 버전 이후로는 사용하신 방법으로는 실행이 되지 않습니다.이에 2.0.0 이전 버전으로 다운그레이 하거나(저는 이 방법이 통하지 않아 다른 방법을 찾아봤습니다)다음과 같은 방법을 사용하면 됩니다.제가 참고한 해외 커뮤니티들에서 제시하는 사용 방법으로는 모든 query에 text() 함수를 사용해 반환된 값을 read_sql_query에 사용하라고 되어 있었는데 테스트 해 보니 현재 작성된 쿼리 스트링으로 사용해도 문제가 없었습니다.import pandas as pd from sqlalchemy import create_engine, text conn_string = 'postgresql://postgres:1324@localhost:5432/inflearn' conn = create_engine(conn_string) postgres_engine = conn.connect()
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
UNION에서 ORDER BY
안녕하세요! 벌써 중급의 마지막 문제네요.. SELECT X, Y FROM functions WHERE X =Y GROUP BY X, Y HAVING COUNT(*) > 1 UNION SELECT f1.X, f1.Y FROM functions AS f1 INNER JOIN functions AS f2 ON f1.X = f2.Y AND f1.Y = f2.X WHERE f1.X < f1.Y ORDER BY X ASC 위의 코드에서 전체 ORDER BY를 해주려면 맨 마지막에 써야 한다는 건 이해했어요! 근데 만약에 UNION 해줄 때 둘 중 하나의 쿼리에만 ORDER BY를 적용시키고 싶을 때는 위의 코드를 어떻게 변경해야 하나요?
-
미해결[백문이불여일타] 데이터 분석을 위한 SQL 실전편 (무료 미니 코스)
신규 가입자 분석하기 : 당일 가입자의 당일 활동 유무 분석 이유
1. One of the easiest things to check is growth, both because it's easy to measure and because most companies (Yammer included) track this closely already. In this case, you have to make it yourself, though. You'll notice that nothing has really changed about the growth rate—it continues to be high during the week, low on weekends:View Mode Analysis이 부분에서 쿼리를SELECT DATE(created_at) AS day, COUNT(*) AS all_users, SUM(CASE WHEN activated_at IS NOT NULL THEN 1 ELSE 0 END) AS activated_users FROM tutorial.yammer_users WHERE created_at >= '2014-06-01' AND created_at < '2014-09-01' GROUP BY DATE(created_at) ORDER BY DATE(created_at); 이런 식으로 작성했던데, 당일 활동 유무가 위의 growth에 어떤 점을 알려 줄 수 있는건가요?가입자의 패턴와 가입한 날의 활동 유무의 패턴이 비슷하다는 걸 알려주는건가요?근데 당일 가입자의 당일 활동 유무가 어떤 의미있는 패턴을 알려줄 수 있는 걸까요?
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
ELSE NULL 관련 질문입니다.
안녕하세요, ELSE NULL 관련 질문입니다.<CASE를 활용한 테이블 피봇(난이도 상)> 강의 내 문제에서ELSE NULL 을 써주지 않아도 결과는 똑같은 것 같은데END 전에 ELSE NULL을 써줘야하는 이유가 특별히 있을까요?
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
union 해커랭크 문제풀이
안녕하세요 항상 좋은 강의 감사합니다symmetric pairs 문제에서 문제 초반 부에 xy 값이 같은 경우와 다른 경우로 나누어서 푸셨는데 저 같은 경우는 select f1.x,f1.yfrom functions as f1 inner join functions as f2 on f1.x = f2. y and f1.y = f2.x where f1.x <= f1.y and f1.x < f2.x order by x 이 부분만 적고 xy가 같은 경우를 따로 만들어서 union해야 하는 지 생각을 하지 못했는데 강사님께서는 어떤 이유로(어떤 요소를 보고) xy값이 같은 경우와 다른 경우로 나누어서 풀어야 겠다고 생각하셨는지 알고 싶습니다. 감사합니다