묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결데이터 분석 SQL Fundamentals
스칼라 서브쿼리에 질문이 있습니다.
-- 아래는 수행 오류 발생. 스칼라 서브쿼리는 단 한개의 결과 값만 반환해야 함.select a.*, (select ename from hr.emp x where x.deptno=a.deptno) as enamefrom hr.dept a; 위의 테스트 결과가 에러가 나오는데 select ename from hr.emp x, hr.dept a where x.deptno=a.deptno 서브쿼리만 따로 출력해 보면 ename에 대한 하나의 컬럼 값만 나옵니다. 아무리 생각해도 1개 이상의 row나 1개 이상의 컬럼이 서브쿼리에서 반환되지 않고 모든 ename은 하나의 값만 가지고 있는걸 확인했는데, 왜 에러가 발생하는 것인지 잘 모르겠습니다.
-
미해결데이터 분석 SQL Fundamentals
서브쿼리의 동작 횟수가 궁금합니다.
-- 상관 서브쿼리로 구하기select a.customer_id, a.contact_name, a.city, b.order_id, c.product_id, c.amount, d.product_namefrom nw.customers ajoin nw.orders b on a.customer_id = b.customer_idjoin nw.order_items c on b.order_id = c.order_idjoin nw.products d on c.product_id = d.product_idwhere c.amount >= (select avg(y.amount) avg_amountfrom nw.orders xjoin nw.order_items y on x.order_id = y.order_idwhere x.customer_id =a.customer_idgroup by x.customer_id)order by a.customer_id, amount; 이 쿼리에서 동작은 하나의 id가 서브쿼리에 넘어가 해당 id의 전체 amount의 avg가 반환되는 것으로 알고 있습니다.그런데 이 동작이 수행될 때마다 서브쿼리는 join을 매번 수행해서 작업을 하는 것인지, 아니면 한번 만들어진 join을 사용해 모든 customer_id를 비교하여 정렬된 데이터의 avg를 반환하는 과정을 수행하는 것인지를 알고 싶습니다. 그리고 혹시나 해서 실행계획도 확인을 해봤는데 이러한 부분을 확인할 수 없더라고요.제가 궁금해 하는 서브쿼리의 반복 처리에 대한 실행 여부를 확인할 수 있는 방법이 있는지도 알고 싶습니다.
-
미해결데이터 분석 SQL Fundamentals
확인 부탁 드립니다.
-- 직원의 가장 최근 부서 근무이력 조회. 비상관 서브쿼리select * from hr.emp_dept_hist_01 a where (empno, todate) in (select empno, max(todate) from hr.emp_dept_hist_01 xgroup by empno); 위 설명을 하실때, 해당 서브쿼리는 XXX 서브 쿼리는 아니다 라고 말씀 하셨는데 제가 반복해서 들어도 어떤 말씀을 하는지 잘 안들려서 뭐라고 말씀 하셨는지 알고 싶습니다. 그리고 서브쿼리에 where절을 넣어 1건만 나오게 하셨는데, 그러면 in이 아니라 비교 연산자를 사용하는게 맞는거 아닌가요? 아니면 in을 사용하더라도 1건만 나오게 하는게 맞는 경우라 이해를 하면 되는걸까요?
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
inner join과 left join의 차이
안녕하세요! self join 리트코드 문제풀이 1 강의에서 inner join을 사용하셨는데, 지난 강의에서 inner join은 join했을 때 null값이 안 생기는 경우 쓰는 것이고 outer join(left, right join)은 null 값이 생기는 경우에 쓰는 것이라고 강의 내용을 이해했습니다. 그러면 이 경우는 inner join이 아닌 outer join을 해야 하는 것 아닌가요? 항상 좋은 강의 감사합니다
-
미해결[백문이불여일타] 데이터 분석을 위한 고급 SQL 문제풀이
회사일하다 보니까 다 못듣고 수강기간이 다끝나가는데 .,. 수강기간 연장은 어떻게 할수 있나요?ㅜㅜ
회사일하다 보니까 다 못듣고 수강기간이 다끝나가는데 .,. 수강기간 연장은 어떻게 할수 있나요?ㅜㅜ
-
해결됨[백문이불여일타] 데이터 분석을 위한 중급 SQL
해커링크 문제 질문
안녕하세요 섹션1. 집계함수 해커링크 문제풀이 강의 질문 드립니다.Average Population 문제의 내용이 변경되었다고 안내 되어 있는데 rounded down to the nearest integer해당 문장의 의미는 내림을 하라는 의미 아닌가요? round함수를 사용한 풀이가 나와있어 이해되지 않아 질문드립니다.
-
미해결데이터 분석 SQL Fundamentals
강사님 수업내용을 블로그에 정리해서 올려도될까요?
안녕하세요 강사님혹시 블로그에 출처를 남기고 해당 강의내용을 정리해서올려도될까요?
-
미해결다양한 사례로 익히는 SQL 데이터 분석
SQL 구글 애널리틱스 전체 데이터셋 다운로드
안녕하세요. 완강을 하고 전반적으로 복습을 하는 차원에서 다시 쿼리를 공부하고 있는데 3달이 아닌 전체 데이터세트를 가지고 한 번 해보고 싶어서요. 혹시 구글 애널리틱스 전체 데이터셋을 다운 받을 수 있는 방법이 있을까요 ? 제가 찾아보니까 날짜 하루하루 단위로 다운로드는 가능한데 1년치를 이렇게 다운받는 건 너무 일이 많은 거 같아서 질문드립니다.
-
미해결윤재성의 Oracle SQL Database 11g PL/SQL Developer
PTT 파일
PPT 파일 다운 어디서 할 수 있을까요?
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
case 문 질문
[categoryid가 1인 값이 음료]인거만 출력하고싶으면ELSE 이후에 어떤식으로 작성하면 될까요?
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
Top Earners 질문
SELECT MAX(months*salary) , COUNT(name) FROM employee GROUP BY months*salary ORDER BY months*salary DESC LIMIT 1제가 다음과 같이 코드를 작성했는데 이것도 정답으로 나오더라고요!GROUP BY에 컬럼이 사용되려면 SELECT에서 컬럼이 정의되어져야 한다고 알고 있는데 정답이 어떻게 나온건지...궁금해요. SELECT에서 컬럼이 그 자체로 쓰이는 게 아니라 함수와 함께 쓰여도 GROUP BY와 함께 쓰일 수 있는 건가요?
-
미해결[백문이불여일타] 데이터 분석을 위한 고급 SQL 문제풀이
[Weather 20 ] 2번째 쿼리도 따라 했는데 왜 다 실패일까요?
SELECT ROUND(AVG(LAT_N), 4) FROM ( SELECT LAT_N , PERCENT_RANK() OVER(ORDER BY LAT_N) rank FROM station ) sub WHERE rank = 0.5틀렸데요.왤까요?....................................................................
-
미해결[백문이불여일타] 데이터 분석을 위한 고급 SQL 문제풀이
[Weather 20] 따라 했는데 왜 작동 안해요?
SELECT ROUND(AVG(LAT_N), 4) FROM (SELECT ROW_NUMBER() OVER(ORDER BY LAT_N) row_num , COUNT(*) OVER() n , LAT_N FROM station) sub WHERE CASE WHEN n % 2 = 1 THEN row_num = (n+1)/2 ELSE row_num IN (n/2, (n/2)+1) ENDMsg 102, Level 15, State 1, Server dbrank-tsql, Line 19 Incorrect syntax near '='. MOD 쓰면 MS SQL Server 에서는 작동 안된다고 하고윈도우 함수 쓰면 MYSQL에서는 작동 안된다고 하는데MS SQL Server에서 홀수 구하는 공식을 저렇게 했는데 = 쓰지 말라고 하고 in을 쓰면 in쓰지 말라고 하는데 도대체 어떻게 해야 풀 수 있는 건가요? P.S 새로 고침도 했습니다. 껐다 켰구요. 로그아웃도 하고 다시 실행 했습니다.
-
미해결[백문이불여일타] 데이터 분석을 위한 고급 SQL 문제풀이
weather-20 왜 작동 안하는건가요?
SELECT ROUND(AVG(LAT_N), 4) FROM (SELECT LAT_N , ROW_NUMBER() OVER(ORDER BY LAT_N) rank FROM station) sub WHERE CASE WHEN MAX(rank) % 2 =0 THEN rank in ( MAX(rank) / 2, (MAX(rank) / 2) + 1)) ELSE rank = ROUND(MAX(rank) / 2) END ) Msg 156, Level 15, State 1, Server dbrank-tsql, Line 16 Incorrect syntax near the keyword 'in'.저런 메세지가 출력되는데 어떻게 수정해야 작동할까요? 그리고MS SQL Server 로 ROUND( something, 4) 를 했는데 "85.87180000" 이런 값을 주는 건가요?그냥 MYSQL로 하면 안 저래요.그러나 MYSQL로 하면 윈도우 함수 쓸 수 없어요.어떻게 하면 좋아요?
-
미해결[백문이불여일타] 데이터 분석을 위한 고급 SQL 문제풀이
Ollivander's Inventory 윈도우 함수 min() over
SELECT id, age, min_coins, power FROM (SELECT W.id, WP.age, W.coins_needed, W.power , MIN(W.coins_needed) OVER(PARTITION BY age, power ORDER BY coins_needed) min_coins FROM Wands W INNER JOIN Wands_Property WP ON W.code = WP.code WHERE WP.is_evil = 0) sub ORDER BY power DESC, age DESC MIN() OVER(PARTITION BY) 로는 문제 못 푸나요??푸는 방법 알려줄 수있나요??중복된 power가 많이 나와요 ㅠㅠㅠ
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL 문제풀이
WHERE절 안 쓰고 HAVING COUNT(D.score = S.score) > 1 쓰면 왜 안되나요?
아래와같이 쿼리 작성을 했을 때아래와같은 결과가 나옵니다. 그런데 HAVING절에 넣은 조건에 해당되는 값만 출력되어야 하는 거 아닌가요? 왜 저렇게 많은 값이 출력되는 걸까요?
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
case 조건문
조건문 작성 시에 when 절의 순서를 정할 때 매번 run code를 해보고 결과가 맞는 지 확인하는 식으로 순서를 정해야 하나요? 강사님의 경우에는 업무에서 순서를 정할 때 어떤 기준으로 정하는 지 알고 싶습니다.
-
미해결[백문이불여일타] 데이터 분석을 위한 고급 SQL
리트코드에서 제가 작성한 쿼리의 결과를 안보여줘요.
제가 작성한 쿼리의 결과를 안보여줘서 머리속에서 상상이 안 되는 아웃풋들은 어떻게 하면 좋을까요?
-
미해결다양한 사례로 익히는 SQL 데이터 분석
집계 함수 order by
with temp_01as (select d.category_name,to_char(date_trunc('month', a.order_date), 'yyyymm') as month_day,sum(amount) as sum_amount,count(distinct a.order_id) as monthly_ord_cntfrom orders ajoin order_items b on a.order_id = b.order_idjoin products c on b.product_id = c.product_idjoin categories d on c.category_id = d.category_idgroup by d.category_name, to_char(date_trunc('month', a.order_date), 'yyyymm'))select *,sum(sum_amount) over (partition by month_day order by month_day) as temp1,sum(sum_amount) over (partition by month_day) as temp2,sum_amount / sum(sum_amount) over (partition by month_day) as ratiofrom temp_01집계 어날리틱 함수는 order by를 사용하면 파티션 내에서 누적합이 되는것으로 알고 있었는데 왜 이렇게 나올까요...? 제가 혹시 놓친게 있는 걸까요
-
미해결다양한 사례로 익히는 SQL 데이터 분석
date_trunc 사용 이유
order_date 컬럼에 대해 쿼리를 할 때 date_trunc('day', order_date)::date; 로 사용하셨는데 date는 YYYY-MM-DD 형태인데 date_trunc()를 굳이 사용할 필요가 있나요?