55,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결데이터 분석 SQL Fundamentals
subquery에서 table 이름 지정 문제
선생님 비상관 subquery에서 table 명을 지정해주어야 하는 이유가 꼭 있을까요?선생님 코드는 from hr.emp_dept_hist_01 x 라고 지정해주셨었는데,select * from hr.emp_dept_hist_01 where (empno, todate) in (select empno, max(todate) as todate from hr.emp_dept_hist_01 x group by empno) ;비상관이면 없어도 되지 않을까하는 생각을 했습니다.select * from hr.emp_dept_hist_01 where (empno, todate) in (select empno, max(todate) as todate from hr.emp_dept_hist_01 group by empno) ;
- 미해결데이터 분석 SQL Fundamentals
서브쿼리: 고객이 가장 최근에 주문한 주문 정보 추출 관련
안녕하세요, 선생님. 하루에 한번은 질문을 드리는거 같은데 자세하게 답변주셔서 항상 감사드립니다. -- 고객이 가장 최근에 주문한 주문 정보 추출를 아래와 같이 풀어도 결과값은 같더라구요. select * from nw.orders a where order_date in (select max(b.order_date) from nw.orders b where b.customer_id =a.customer_id );(아래는 예제 코드)select * from nw.orders where (customer_id, order_date) in (select customer_id, max(order_date) from nw.orders group by customer_id);where...in 은 비상관쿼리의 다중행, where existx (...)은 상관쿼리의 다중행 반환에 사용된다는 것을 배웠기 때문에 저렇게 하면 안되는 거 같은데 왜 안될까 궁금합니다.
- 미해결데이터 분석 SQL Fundamentals
where절 서브쿼리 관련 질문
안녕하세요, 선생님 항상 친절하고 자세한 답변 감사드립니다.강의 자료 중 select *from hr.emp_salary_hist awhere todate = (select max(todate) from hr.emp_salary_hist x where a.empno = x.empno);여기서 where a.empno = x.empno 이 부분은 왜 필요한건가요? select * from hr.emp_salary_histwhere todate = (select max(todate) from hr.emp_salary_hist ) ; 이것도 결과는 같기도 하고 같은 데이터에서 값을 찾는거라 굳이 where a.empno = x.empno 이 왜 필요한지 잘 모르겠습니다. 감사합니다.
- 미해결데이터 분석 SQL Fundamentals
Dbeaver오류
안녕하세요, 강사님.다름이 아니라, 강사님과 코드를 동일하게 작성했음에도 불구하고dbeaver에서 데이터 결과값이 자꾸 나오지 않아 문의 드립니다.계속 아래에 데이터 없음이 뜨는 데 이를 어떻게 해결할 수 있을까요ㅜㅜ감사합니다.
- 미해결데이터 분석 SQL Fundamentals
max(lpad(....)) 사용시의 오류 가능성
실습코드 'first_value_last_value_Analytic_실습'의 마지막"-- 연속된 데이터 흐름에서 값이 Null일 경우 바로 값이 있는 바로 위의 데이터를 가져 오기." 와 관련된 질문입니다(아마도 실습코드는 있는데 본 강의에서는 다루지 않으신 듯합니다). (예제코드)temp_04 as (select *, max(lpad(rnum::text, 6, '0')||daily_sum) over (order by ord_date rows between unbounded preceding and current row) as temp_strfrom temp_03 order by ord_date)dayily_sum자체를 일정한 자리수로 padding을 해주고 난 뒤 처리해도 되지 않을까 생각해봤습니다.temp_04 as (select *, max(lpad(rnum::text, 6, '0')||lpad((daily_sum)::text,6, '0' )) over (order by ord_date rows between unbounded preceding and current row) as temp_strfrom temp_03 order by ord_date) 이렇게 해서 처리해도 될까요?
- 미해결데이터 분석 SQL Fundamentals
round 에러
select product_id, product_name , unit_price, round(sum(unit_price) over (order by unit_price),2) as unit_sumfrom products ; 실행시 "SQL Error [42883]: 오류: round(real, integer) 이름의 함수가 없음"sum(unit_price) over (order by unit_price)의 자료형이 real인 것은 확인이 되는데 왜 에러가 나는걸까요?
- 해결됨데이터 분석 SQL Fundamentals
스칼라 서브쿼리 실습 - 01 : 질문 있습니다!
안녕하세요 선생님, 강의 너무 재밌게 복습하고 있는 수강생입니다.질문이 있어서 글을 씁니다. " 스칼라 서브쿼리 실습 - 01 " 강의 07:10 에서 아래 쿼리에 문제가 있다고 알려주십니다.select a.*,(select avg(sal) from hr.emp x where x.deptno = a.deptno) dept_avg_salfrom hr.emp a;그리고 그 과정에서 M:N join 결과물을 예로 들어서 왜 그런 지를 알려주시는데요, 여기서 의문이 생겼습니다."스칼라 서브쿼리 실습 - 01 " 바로 이전 강의에서 스칼라 서브 쿼리는 메인 쿼리의 각 레코드 별로 연산이 수행된다는 걸로 기억합니다. 그 말은...(select avg(sal) from hr.emp x where x.deptno = a.deptno)위 스칼라 서브쿼리가 hr.emp 테이블의 각 레코드 별로 연산이 수행된다는 걸로 전 이해합니다.그런데 07:10 때는 이걸 조인의 결과물로 설명하시면서 좋지 않은 쿼리라고 알려주십니다.각 레코드 별로 연산을 수행한다고 생각하면 사실 저 서브쿼리가 잘못된 쿼리 같지가 않다고 저는 생각하는데, 그게 아닌가요? 조인을 통해서 스칼라 서브쿼리를 좋은지 아닌지를 판단해야 되는 건가요??
- 미해결데이터 분석 SQL Fundamentals
to_date 포맷관련 질문드립니다.
안녕하세요. 강사님.평소 궁금하고 잘 안됬던 부분들을 학습할 수 있어서 열심히 수강중입니다. 기초적인 질문이나 개념을 잡기 위해 문의드립니다. select to_date('2022-01-01', 'yyyy-mm-dd');select to_date('2022-01-01', 'yyyy/mm/dd');select to_date('2022/01/01', 'yyyy/mm/dd');select to_date('2022/01/01', 'yyyy-mm-dd'); 위 네가지 모두 결과값으로는 to_date2022-01-01 로 나오던데요. to_date() 라는 것은 구성에 대한 부분일 뿐date에 대한 db관리나 출력시의 포맷과는 무관한 것인가요??
- 미해결데이터 분석 SQL Fundamentals
rows between unbounded preceding and current row 관련 질문
집계 Analytic SQL에서 rows between unbounded preceding and current row 관련 질문 드립니다. sum(amount) over (partition by order_id order by line_prod_seq) as cum_sum_by_orderid sum(amount) over (partition by order_id rows between unbounded preceding and current row) as cum_sum_by_orderid21의 경우와 2의 경우가 값이 같은데partition이 되어 있고 윈도우 설정이 어차피 상위 row에서 부터 누적되는 값이라면 'order by line_prod_seq'이 없어도 되지 않나 하는 생각이 듭니다. 그럼에도 불구하고 'order by line_prod_seq'을 굳이 명시해줘야 하는 이유가 있을까요? 어떤 데이터의 경우 이 부분이 없으면 문제가 생길 수 있나요?
- 미해결데이터 분석 SQL Fundamentals
to_char와 date_part
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.order_date에서 년, 월, 일을 to_char로 추출하셨는데 date_part와의 결과는 동일하더라구요. 두 명령어의 차이가 무엇인가요?ㅍ
- 미해결데이터 분석 SQL Fundamentals
timestamp연산질문
timestamp 연산을 하다가 이상한 점을 발견했습니다.select to_timestamp('2024-01-01 01:00:00', 'yyyy-dd-mm hh24:mi:ss')-to_timestamp('2023-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss') as diff_timestamp;resultdiff_timestamp365 days 01:00:00그런데select to_timestamp('2024-01-11 01:00:00', 'yyyy-dd-mm hh24:mi:ss')-to_timestamp('2023-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss') as diff_timestamp;resultdiff_timestamp670 days가 됩니다. timestamp 두번째의 경우 670일이라고 결과값을 나왔습니다, 375일이 맞는 답인데 말입니다.제가 뭐를 놓친걸까요?
- 해결됨데이터 분석 SQL Fundamentals
1997년 이후에 단 한건도 주문하지 않은 고객 정보
안녕하세요. 강의 듣고 실습문제를 따로 풀어보고 있는데요1997년 이후에 단 한건도 주문하지 않은 고객 정보에 대해저는 아래와 같이 인라인뷰를 안쓰고 바로 left 조인으로 했는데요.이렇게 풀이를 해도 상관없을까요? 실행결과 자체는 같은데 혹시 먼가 빠뜨리거나 잘못생각하고 있는게 있나 궁금해서 문의드립니다. 풀이SELECT *FROM NW.customers ALEFT JOIN NW.orders BON A.customer_id = B.customer_idAND B.order_date >= TO_DATE('19970101', 'YYYYMMDD')WHERE B.customer_id IS NULL 정답select *from nw.customers aleft join (select customer_id from nw.orderswhere order_date >= to_date('19970101', 'yyyymmdd')group by customer_id) b on a.customer_id = b.customer_idwhere b.customer_id is null;
- 미해결데이터 분석 SQL Fundamentals
상관서브쿼리에서 서브쿼리내부 GROUP BY 생략가능 여부
안녕하세요. 강의실습을 진행하다가 궁금한 사항이 있어 문의드립니다. 가장최근 급여정보를 비상관으로 풀이한 쿼리를 보면 서브쿼리내에 GROUP BY가 생략된 것 같아서요 select * from hr.emp_salary_hist a where todate = (select max(todate) from hr.emp_salary_hist x where a.empno = x.empno); 서브쿼리내 where a.empno = x.empno에 의해 group by 가 없어도 직원별 max(todate)를 가져오게 된건가요? 그러면 아래의 쿼리에서도 group by를 생략해도 되는건가요?-- 2건 이상 주문을 한 고객 정보select * from nw.customers awhere exists (select 1 from nw.orders x where x.customer_id = a.customer_idgroup by customer_id having count(*) >=2);
- 미해결데이터 분석 SQL Fundamentals
dbeaver 환경설정 문제
안녕하세요! 처음으로 dbeaver 을 사용하는데 sql추출하는 곳의 글꼴 크기가 너무 작아 구글을 통해 환경설정을 하려고 했습니다. 근데 보통 설정>모양>색상및 글꼴>기본>텍스트 글꼴 하면 된다고 나오는데... 저한테는 텍스트 글꼴 목록자체가 나오지 않습니다. 이부분에 대해서도 구글링을 해보았지만 해답이 나오지 않습니다. 혹시 선생님께서 알고 계시다면 알려주시면 감사하겠습니다...!
- 미해결데이터 분석 SQL Fundamentals
postgre sql 다운로드 에러 ..
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 프로그램을 다운로드 하려고 하는데, 계속 해서 에러메세지가 뜹니다 ㅠ버전을 다 다르게 해봤는데도 안되네요..윈도우로 다운입니다. 마지막 인스톨링 화면에서 저렇게 에러메세지가 뜹니다.
- 미해결데이터 분석 SQL Fundamentals
anayltic sql, 조인, 서브쿼리 셋중 어떤걸 쓰던 상관이 없나요?
강사님, 서브쿼리 실습 -01에서 다루셨던것 처럼위의 3가지 방법(anayltic sql, 조인, 서브쿼리)은 다르지만 결국 같은 값이 나옵니다.제 생각에는 가장 가독성이 좋은건 where절 서브쿼리 인거 같고, 조인은 불필요한 행까지 다 가져오므로 무거워 질거 같고, 개인적으로 analytic sql 사용시 가장 직관적으로 느껴지기에 이해하기 쉬워서 많이 쓰고 있습니다.모로 가도 서울만 가면 되긴 하지만, ㅎㅎ 강사님께서 추천해주신다면 어떤걸 쓰는게 현실 업무 혹은 협업 과정에서 좋을까가 궁금해서 질문 드려봅니다!
- 미해결데이터 분석 SQL Fundamentals
다중행 서브쿼리에서 in과 exists 차이
강사님 exists와 in은 다중행 서브쿼리 작성시에 쓸수 있는 연산자라고 하셨는데, 사실 무슨 차이인지 잘 모르겠습니다.... 서브쿼리에서 존재하느냐는 exists고in도 어떻게 보면 (존재하는)조건에 맞는 레코드를 가져오는거라서 말만 그렇지 솔직히 잘 구별하기 힘든데, 그냥 업무상에서 구분없이 써도 되나요...?
- 미해결데이터 분석 SQL Fundamentals
join 관련
안녕하세요!강의를 듣다가 궁금한것이 생겨서 문의 드립니다.-- 부서명 SALES와 RESEARCH 소속 직원별로 과거부터 현재까지 모든 급여를 취합한 평균 급여select b.empno, max(b.ename) as ename, avg(c.sal) as avg_sal --, count(*) as cntfrom hr.dept a join hr.emp b on a.deptno = b.deptno join hr.emp_salary_hist c on b.empno = c.empnowhere a.dname in('SALES', 'RESEARCH')group by b.empnoorder by 1; 여기서 왜 max(b.ename) 이라고 해야하는지 잘 이해가 안가서 문의 드립니다..!감사합니다.
- 해결됨데이터 분석 SQL Fundamentals
조인관련 문의
안녕하세요. 조인관련 실습을 하다가 궁금한점이 있어 문의드립니다.-- 직원명 SMITH의 과거 소속 부서 정보를 구할 것. 예제를 실행하려다 보니 저의 경우일단 가장먼저 보이는 emp와 dept 테이블을 join하고 (JOIN순서는 상관 없다고 하셔서..)나머지 테이블인 emp_dept_hist 테이블을 연결해주려 하다보니 아래와 같은 join 조건을 쓰게 되고 당연히 결과가 다르게 나오더라구요.결과를 알고 보니 emp와 dept 테이블을 연결 안해야 하는게? 맞는거 같긴한데..제가 여러 테이블을 조인할때 어느 부분을 놓치고 있는 걸까요? ㅜ(ANSI가 아직 익숙하지 않아 일단 기존 방식으로 쿼리를 작성했습니다..) SELECT a.ename , c.fromdate , c.todate , b.deptno , b.dnameFROM emp a, dept b, emp_dept_hist cWHERE a.deptno = b.deptnoAND a.empno = c.empnoAND b.deptno = c.deptnoAND a.ename = 'SMITH';
- 미해결데이터 분석 SQL Fundamentals
mysql에서는 백업파일을 업로드 못하나요?
mysql workbench를 사용 중인데 여기에 데이터를 올려서 실습을 진행할 수 없는지가 궁금합니다!할 수 있다면 어떻게 해야 하나요?