묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[리뉴얼] SQL 베이스캠프
노션 자료 질문
[제품 이름이 'A'로 시작하면서 가격이 평균 이상인 제품을 구해주세요. 아래와 같이 작성하면 애러가 발생됩니다. 이유를 설명하고, 코드를 작성하세요.]2회차 자료 마지막 문제인데 답이 뭔가요?
-
미해결데이터 분석 SQL Fundamentals
oracle로 해당 부분을 진행하고 싶은데 방법이 있을가요.
date_part 나 justify_inteval, age 함수의 postgresql에서만 되는 걸로 확인이 됩니다. 같이 공부하고 있지만 저는 실제로 oracle을 사용하고 있기 때문에 오라클에서도 오늘날짜 - 입사 날짜를 하였을 때 근속년수가 xx년 x월 이렇게 나오게 하고 싶은데 extract(year from sysdate) - extract(year from hiredate)||'년' 으로 하면 년도만 나오는 방법만 생각이 나서요. 혹시 방법이 있다면 알려주시면 감사하겠습니다.
-
미해결[개념은 호옹~, 실습 빡] SQL 데이터 분석, 입문!
홍팍선생님! 질문입니다!
DISTINCT 함수(거래처 목록, 중복 없이 뽑아주세요) 이 강의에서과제를 내주셨잖아요? 거래내역의 입금 총액은? 이렇게요 . --거래내역의 총합SELECT sum(amount) as totalFROM transactions;이걸 말씀하시는건지.. 아니면 제가 문제를 이해를 못하는건가요 ...혹시 답을 적어주실수있나요 선생님의 과제 의도를 이해하고싶어서요
-
미해결다양한 사례로 익히는 SQL 데이터 분석
'작년 대비 동월 매출 비교 SQL로 구하기' 문의 드립니다.
작년 대비 동월 매출 비교 SQL로 구하기 부분에서lag 함수로 12 row 이전의 데이터를 가져오셨는데,실제 데이터가 특정 월에 매출이 발생하지 않는 케이스를 포함할 경우에는 어떻게 해야할지 문의 드립니다.
-
미해결다양한 사례로 익히는 SQL 데이터 분석
DAU, WAU, MAU를 SQL로 구하기-02 관련 질문드립니다.
withtemp_00 as (select generate_series('2016-08-02'::date, '2016-11-01'::date, '1 days'::interval)::date as current_date)select b.current_date, count(distinct user_id) as daufrom ga_sess across join temp_00 bwhere visit_stime >= (b.current_date - interval '1 days') and visit_stime < b.current_dategroup by b.current_date 위 SQL문에서where visit_stime >= (b.current_date - interval '1 days') and visit_stime < b.current_date이 부분이 이해가 가지 않습니다.current_date가 2016-08-02일 경우visit_stime이 2016-08-02보다는 작아야 하고,2016-08-01보다는 크거나 같다는 말인데..그럼 즉, 2016-08-01 00:00:00 ~2016-08-01 23:59:59 라는 건데요..그럼 이게 2016-08-01의 DAU가 아닌가요?..select 절에서는 current_date로 group by를 해서추출된 데이터는 2016-08-02의 DAU로 추출이 되더라구요..실제 csv파일로 받아서 보아도,2016-08-01의 dau가 1569로 확인이 되는거 같기두 하구요.. withtemp_00 as (select generate_series('2016-08-01'::date, '2016-11-01'::date, '1 days'::interval)::date as current_date)select b.current_date, count(distinct user_id) as daufrom ga_sess across join temp_00 bwhere visit_stime >= b.current_date and visit_stime < (b.current_date + interval '1 days')group by b.current_date withtemp_00 as (select generate_series('2016-08-01'::date, '2016-11-01'::date, '1 days'::interval)::date as current_date)select b.current_date, count(distinct user_id) as waufrom ga_sess across join temp_00 bwhere visit_stime >= (b.current_date - interval '6 days') and visit_stime < (b.current_date + interval '1 days')group by b.current_date; withtemp_00 as (select generate_series('2016-08-01'::date, '2016-11-01'::date, '1 days'::interval)::date as current_date)select b.current_date, count(distinct user_id) as maufrom ga_sess across join temp_00 bwhere visit_stime >= (b.current_date - interval '29 days') and visit_stime < (b.current_date + interval '1 days')group by b.current_date; 이렇게 구하는게 맞는거 아닌지 문의드립니다 !
-
미해결데이터 분석 SQL Fundamentals
메인 쿼리 집합 레벨 변경 관련 질문입니다.
select * from nw.orders where (customer_id,order_date) in (select customer_id,max(order_date) from nw.orders group by customer_id)이 쿼리를 날려도 customer_id 레벨이 M이라 LACOR이라는 value가 중복이 되는 건가요? 강의에선 메인 쿼리 레벨이 1이고 서브 쿼리 레벨이 M일 때 메인 쿼리 레벨이 1로 유지된다고 했는데, 이 쿼리처럼 메인 쿼리 레벨이 M이고 서브 쿼리 레벨이 1일 때도 메인 쿼리 레벨은 M으로 유지된다고 이해해도 괜찮을까요?
-
미해결[개념반]배워서 바로 쓰는 SQL 쿼리
질문드리겠습니다.
select substr(birthdate, 1, 7) as month, count(*) as cnt from Employees group by month; 위와같은 쿼리를 이용하여 문제를 푸는 도중처음에는 groupby month 를 사용하지 않았습니다.그 결과 month 의 컬럼에는 1968-12 이 출력되어 나왔는데 제일 최근 년도도 아니고, 오래된 년도도 아니고 왜 이친구가 대표로 출력되어 나오는건가요..?
-
미해결데이터 분석 SQL Fundamentals
Analytic SQL 관련 질문
안녕하세요. 권철민 선생님.저는 SQL을 업무에서 활용하고 싶은 직장인입니다.선생님 강의로 SQL을 열심히 공부하고 있고 지금은 Analytic SQL을 수강 중인데요.제 궁극적인 목표는 회사 데이터베이스에서 SQL로 데이터를 가져와 판다스 등으로 처리한 뒤 머신러닝으로 결과를 도출하는 것이라서 'Analytic SQL이 내게 필요할까?' 라는 생각이 들고 있습니다. 왜냐하면 다양한 계산들은 판다스에서 더 수월히 수행할 수 있을 것 같아서요.혹시 제가 아직 지식이 부족하여 그런 것이고 제가 모르는 Analytic SQL의 장점이 있다면 조언 부탁드립니다.
-
미해결데이터 분석 SQL Fundamentals
맥북 환경에서 SQL
안녕하세요,제가 맥북을 사용하고 있고, PostgreSQL과 Dbeaver 두가지 모두 다운받았는데 이 두개가 연동(?)이 안되는 것 같아요 ㅠㅠ 인터넷 검색해보니 도커를 다운받아야한다는데 제 컴퓨터엔 도커도 설치가 안되네요.. 윈도우 기반으로 설명해주셔서 명강의를 어떻게 들으면 좋을 지 고민이라 여쭤봅니다.
-
미해결데이터 분석 SQL Fundamentals
쿼리 질문
안녕하세요~아래 문제에서,join nw.shippers d on b.ship_via = d.shipper_id>> 왜 ship_via = shipper_id 인지 잘 이해가 안됩니다.두 키 값이 같은 키 값인걸까요? [문제]-- Berlin에 살고 있는 고객이 주문한 주문 정보를 구할것-- 고객명, 주문id, 주문일자, 주문접수 직원명, 배송업체명을 구할것.select a.customer_id, a.contact_name, b.order_id, b.order_date, c.first_name||' '||c.last_name as employee_name, d.company_name as shipper_namefrom nw.customers ajoin nw.orders b on a.customer_id = b.customer_idjoin nw.employees c on b.employee_id = c.employee_idjoin nw.shippers d on b.ship_via = d.shipper_idwhere a.city = 'Berlin'; 그리고 회사에서 DB2를 사용하는데, 현재 강의에서 알려주시는 postgres2 와 많은 차이가 있는지도 문의 드립니다..!
-
미해결데이터 분석 SQL Fundamentals
날짜 관련 질문
안녕하세요!-- 고객명 Antonio Moreno이 1997년에 주문한 주문 정보를 주문 아이디, 주문일자, 배송일자, 배송 주소를 고객 주소와 함께 구할것.이 문제에서, 1997년에 주문한 주문 정보 where절 작성할 때where b.order_date between '19970101' and '19971231' 이렇게 작성해도 1997년 주문 정보가 추출이 되는 거 같은데, 강의에서 between to_date('19970101', 'yyyymmdd') and to_date('19971231', 'yyyymmdd')이렇게 to_date라고 쓰신 이유가 따로 있을까요?!
-
미해결[개념반]배워서 바로 쓰는 SQL 쿼리
질문드리겠습니다.
or조건을 이용하여 검색하는 경우는 where in을 사용하는데요and 조건을 이용하여 검색하는경우는 and를 사용하지않고 어떻게 사용해야하나요?
-
미해결[개념반]배워서 바로 쓰는 SQL 쿼리
질문드리겠습니다.
선생님은 SELECT * FROM customers WHERE Country = "Mexico" or ContactName = "Yang Wang"; 위와같이 customers를 소문자로 저는SELECT * FROM Customers WHERE Country = "Mexico" or ContactName = "Yang Wang"; 이렇게 C를 대문자로 사용하였습니다. 제가 소문자로 문구를 바꾼다면 Table 'northwind.customers' doesn't exist 테이블이 존재하지 않는다는데 이유가 무엇일까요?
-
미해결[개념반]배워서 바로 쓰는 SQL 쿼리
질문드립니다.
SELECT * FROM Customers WHERE Country like '%A'; 위와같이 like를 사용하여 특정 문자열을 포함하는 케이스를 찾는경우 대소문자를 구문하지는 않나요?
-
미해결데이터 분석 SQL Fundamentals
dbeaver에 연결한 dbms에 따라 쿼리를 다르게 써야 하나요?
수업은 디비버에 postgre를 연결시켜서 쓰고 있는데, 만일 mysql을 디비버에 연결하면 mysql에 맞는 문법으로 쿼리를 적용해야 하는건가요?각 dbms마다 조금씩 문법이 다른걸로 알고 있어서 문의드립니다그리고, 수업에서 배우는 쿼리문은 posrgre에서만 사용할수 있는 문법인가요?
-
미해결[백문이불여일타] 데이터 분석을 위한 고급 SQL 문제풀이
(Hacker Rank)Binary Tree 문제 질문
Leaf는 자식이 없다는 것을 이용해서두 번째 조건으로 P의 값과 N이 같지 않을 때 'Leaf' 로 출력 되도록 아래와 같은 쿼리로 작성해 보았습니다. 근데 Leaf가 출력 되지 않는 오답이 나오는데, 이유가 뭘까요?위와 같은 조건으로 쿼리를 작성하려면 어떻게 작성해야 하는지도 궁금합니다!
-
미해결[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
pymysql 사용해 테이블, 데이터 저장하는 연습문제에 오류가 납니다
강의 : 패턴으로 익히는 파이썬과 MySQL - 데이터 삭제와 총정리가장 마지막에 언급하신 연습 문제를 하고 있는데, 자꾸 에러가 뜹니다 코드--------------------------------------------- import pymysqldb = pymysql.connect(host='localhost', port=3306, user='root', passwd='Qpspelrxm34*', db='ecommerce', charset='utf8')cursor = db.cursor()SQL = """ CREATE TABLE corw3 ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(50) NOT NULL, model_num VARCHAR(15) NOT NULL, model_type VARCHAR(30) NOT NULL, PRIMARY KEY(id) ); INSERT INTO corw2 (name, model_num, model_type) VALUES('i7', '7700', 'Kaby Lake'); INSERT INTO corw2 (name, model_num, model_type) VALUES('i7', '7500', 'Kaby Lake'); INSERT INTO corw2 (name, model_num, model_type) VALUES('i7', '7700K', 'Kaby Lake'); INSERT INTO corw2 (name, model_num, model_type) VALUES('i7', 'G4600', 'Kaby Lake'); INSERT INTO corw2 (name, model_num, model_type) VALUES('i7', '7600', 'Kaby Lake'); """cursor.execute(SQL)result = cursor.fetchall()for record in result: --- print(record)db.commit()db.close() 에러 메세지------------------------- ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO corw2 (name, model_num, model_type) VALUES('i7', '7700', 'Kaby Lake'' at line 9") 에러에서는 INSERT INTO 부분이 이상하다고 하는 것 같은데,mysql에서는 해당 공식으로 테이블을 바꿔서 입력해도 그 테이블에 데이터가 잘 저장이 되어서요 코드에 혹시 문제가 있는건지 여쭤보고 싶습니다아니라면 데이터베이스나 다른 테이블에 문제가 있는 건지 제가 더 고민해보도록 하겠습니다.. ㅜㅜㅎㅎ 저같은 코린이도 어떻게든 해볼 수 있게 친절하고이해가 쏙쏙 되게 가르쳐주셔서 감사합니다!!
-
미해결[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
INSERT 이용해서 가격(lowest_price) 데이터 추가는 불가능한가요?
- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 섹션 3SQL로 데이터 삭제하고, 다양한 SQL 활용하기 강의 내용 중 10분 54초에서 제품의 가격(lowest_price)들을 UPDATE 함수 이용해서 추가하셨는데, 혹시 INSERT 를 사용해서 추가는 불가한 건가요??INSERT INTO mytable (lowest_price) VALUES (28170);했는데 안 되네요 ㅎㅎㅎINSERT는 VALUES에 모든 column의 값이 다 들어가 있어야만 추가할 수 있는 함수인 건지 궁금합니다
-
미해결[개념은 호옹~, 실습 빡] SQL 데이터 분석, 활용!
상품#11 문제
갑자기 의문이 듭니다 상품#11 문제를 풀었습니다.우유식빵은 2900 원 총 갯수는 13 = 37700이 맞습니다. 근데 어떻게 SUM 함수안에서ORDER_DETAILS.COUNT 로 자기들끼리 총 갯수를 더해서 13을 나오게 한건가요 ?? PRODUCTS.PRICE 가격은 2900 으로 고정시키고count는 어떻게 자기들끼리 더해서 계산이이루어 진건가요 ????????????????????????????????????????
-
미해결다양한 사례로 익히는 SQL 데이터 분석
쿼리 질문
안녕하세요, 도움을 받고자 글 올립니다.97년 이후 nw데이터의 '국가/ 기준월 / 대표제품명 / 구매고객수 / 동시구매 고객 수 / 구매 횟수 / 동시구매 횟수 / 동시구매율' 을 구해보았는데 결과가 나오긴 하는데 맞는지 알 수가 없어서 코드리뷰 부탁드립니다. 더불어 더 좋은 코드가 있을지 여쭙습니다.새해 복 많이 받으세요 with uu as (select customer_id, product_id, order_id, product_name, order_date, ship_addressfrom(select c.product_id, c.product_name, a.amount, b.order_date, b.ship_address , b.customer_id, b.order_idfrom order_items a join orders b on a.order_id = b.order_idjoin products c on a.product_id = c.product_idwhere extract(year from b.order_date) >= 1997) tt), xx as (select ww.customer_id, ww.product_id as prd_01, vv.product_id as prd_02, ww.order_date, ww.ship_addressfrom uu ww join uu vv on ww.customer_id = vv.customer_id), temp_01 as (select customer_id, prd_01, prd_02, extract(year from order_date) as year_ord, extract(month from order_date) as month_ord, ship_address as countryfrom xxwhere prd_01 != prd_02group by 1,2,3,4,5,6order by 1,2,3,4,5,6)---------------구매자 id, 대표제품 id, 동시구매제품 id, 년, 월, 국가, temp_03 as (select prd_01, prd_02, count(*) as cnt_prd_prdfrom temp_01group by 1,2order by 1, 3 desc) -----------------대표제품 id, 동시구매제품 id, 동시구매 횟수, temp_04 as (select distinct product_id, count(customer_id) as cnt_prdfrom order_items oi join orders o on oi.order_id = o.order_idgroup by 1order by 1)-------------------- 대표제품 id, 구매고객수, temp_05 as (select prd_01, prd_02, count(customer_id) as cnt_prd_customerfrom temp_01group by 1,2order by 1,3)-------- 동시구매 고객 수, temp_06 as (select customer_id, count(order_id) as cnt_customerfrom ordersgroup by 1)------ 구매횟수, temp_07 as (select distinct t5.prd_01, t5.prd_02, cnt_prd_customer as 동시구매고객수, sum(cnt_customer) as 구매횟수, cnt_prd_prd as 동시구매횟수, cnt_prd_prd/sum(cnt_customer) as 동시구매율from temp_01 t1 join temp_05 t5 on t5.prd_01 = t1.prd_01 and t5.prd_02 = t1.prd_02join temp_06 t6 on t1.customer_id = t6.customer_idjoin temp_03 t3 on t1.prd_01 = t3.prd_01 and t1.prd_02 = t3.prd_02group by 1,2,3,5order by 1,5 desc) ---/ 동시구매 고객 수 / 구매 횟수 / 동시구매 횟수 / 동시구매율, temp_08 as (select distinct country, year_ord , month_ord , prd_01, cnt_prd as 구매고객수from temp_01 t1 join temp_04 t4 on t1.prd_01 = t4.product_idorder by 1,2,3,4)---국가/ 기준월 / 대표제품명 / 구매고객수select distinct t8.*, prd_02, 동시구매고객수, 구매횟수, 동시구매횟수, 동시구매율from temp_08 t8 join temp_07 t7 on t8.prd_01 = t7.prd_01;