- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강사님 특정 쿼리 방식이 '어떨 때' 주로 사용된다고 말씀하시면서 온라인 혹은 인라인 이라고 언급하신것같은데... (6:46 쯤) "온라인" 거래 관련 데이터를 다룰 때 상관 서브쿼리를 주로 사용한다는 말씀이셨을까요?
안녕하세요 유익하고 훌륭한 강의 덕분에 쿼리 이해가 일취월장하고 있습니다. 감사합니다. 강사님께서 거듭 강조하시고 중요하다고 지적하신 "집합의 레벨"이 무슨 의미인지 문의드립니다. group by로 집계하거나 analytic sql로 데이터를 aggregate할 때 "집합의 레벨"이란 표현이 자주 나오는데 어떻게 이해하면 좋을까요? 하나의 행(레코드)가 여러 열(속성)을 가지는 경우에 있어서, 어느 하나의 열을 기준으로 다른 열의 값을 집계할 때, 그 기준이 되는 열을 집계결과의 '집합의 레벨' 이라고 이해하면 될까요? 이전 질문과 같이, 저도 첫 임시테이블(temp_01)에서 group by를 product_id와 category_id 두 열을 기준으로 했습니다. 여기서 첫 임시테이블의 '집합의 레벨'인 product_id이므로 category_id를 또다른 레벨로 두는 것이, 기능상 차이는 없지만 개념상 부적절하다고 생각하면 옳게 이해한 것일까요? "집합의 레벨"이라는 표현이 모호하게도 들으면 이해되는듯 하면서도 막상 쿼리를 작성할 때 머릿속에 원하는 결과가 흐릿해서 바라는 대로 결과를 얻지 못해 질문드립니다.
안녕하세요? 강사님 질문이 있습니다 Outer조인실습02 강의의 8분50초쯤에 city가 Madrid인 고객에 대해서 left join이 실행된다고 강조해주셨습니다 여기서 질문이 저는 sql 실행 순서가 from->where->groupby->... 로 알고 있는데 이 순서가 맞다면 from절에서 전체 고객에 대해 join을 다 수행 한 다음에 그 결과 테이블을 where 절로 city가 Mardrid 인 고객만 필터되는 것이 맞다고 생각드는데 이건 내부적으로 SQL이 최적화하면서 실행 순서를 무시(?)하는 것으로 받아들이면 되는걸까요? 감사합니다
안녕하세요? 강사님 머신러닝 강의에 이어서 SQL 강의도 잘 보고 있습니다 질문이 있는데 가령 3개의 테이블을 join할 경우 테이블a join 테이블b join 테이블c 이렇게 순서대로 join하는 것과 테이블a와 테이블b를 join하고 그 결과를 서브쿼리로 해서 테이블 d로 만들고 테이블c와 join하는 것과 성능적인 측면에서는 차이가 없는건지 궁금합니다
우선 강의 잘 듣고 있습니다 :) 간단한 질문인데 파생 테이블과 CTE는 무조건 하나를 골라서 사용하는 것이 아닌건 강의를 통해서 알겠는데 이 두 기능의 유의미한 성능 차이는 없나요? 지금까지는 계속 파생 테이블 형태로 쿼리를 짜왔는데 성능 차이가 없거나 CTE가 우위에 있다면 불필요하게 파생 테이블로 중복 작성되어있던 쿼리를 CTE로 바꾸려고요
오라클 디벨로퍼 설치 하고 진행하시는 테스트 단계에서 성공이아닌 실패가 떠서 그 다음 단계로 진행을 못하고 있는 상태 입니다. 강의 화면과 다른 점이 하나가 있는데 "감지된 데이터베이스"항목 화면에서 저는 TNS항목을 찾을 수 없다고 되어 있습니다. 이것이 테스트 실패와 연관이 있는 걸까요? 해결을 하려면 어떻게 해야하는지 알려주세요
SELECT DISTINCT lags.num1 AS ConsecutiveNums FROM ( SELECT id, num AS num1, lag(num) OVER(ORDER BY id) AS num2, lag(num,2) OVER(ORDER BY id) AS num3 FROM logs ) AS lags WHERE lags.num1 = lags.num2 = lags.num3 으로 하면 1과 2가 나오네요 ㅎㅎ ㅠ FROM 절 서브쿼리만 따로 돌려봤을 때에도 num1~3이 모두 같은건 1밖에 없고 테이블을 심플하게 엑셀로 생각해봐도 lead나 lag나 다를게 없어보이는데 최종적으로 돌려볼때는 자꾸 1,2가 모두 나와서요
안녕하세요! 강의 정말 잘 듣고 있습니다!!!! 본 영상에서 첫번째 예시로 기간 범위에 따른 조회(1997년 주문)를 예시로 들어주셨는데 -- 강사님 예시 SELECT a.contact_name, a.address, b.order_id, b.order_date, b.shipped_date, b.ship_address FROM customers a JOIN orders b ON a.customer_id = b.customer_id WHERE a.contact_name = 'Antonio Moreno' AND b.order_date BETWEEN to_date('19970101', 'yyyymmdd') AND to_date('19971231', 'yyyymmdd'); 그런데 기간 범위를 설정할 때 1년 범위 설정 쿼리가 너무 길어보여서 다른 function들을 찾아서 적용해보았습니다. -- 수정1 SELECT a.contact_name, a.address, b.order_id, b.order_date, b.shipped_date, b.ship_address FROM customers a JOIN orders b ON a.customer_id = b.customer_id WHERE a.contact_name = 'Antonio Moreno' AND date_part('year', b.order_date) = '1997'; (물론 이쪽은 연도나 월 등 딱 하나만 인덱싱이 가능하니 한계는 있어보이네요.) 혹은 -- 수정2 SELECT a.contact_name, a.address, b.order_id, b.order_date, b.shipped_date, b.ship_address FROM customers a JOIN orders b ON a.customer_id = b.customer_id WHERE a.contact_name = 'Antonio Moreno' AND b.order_date BETWEEN '1997-01-01' AND '1997-12-31'; 이렇게 작성해도 결과물은 같긴 하더라고요. 강사님이 들어주신 예시의 to_date()는 검색해보니 대부분 오라클에서 많이 언급되는 것 같은데, 이쪽 쿼리가 더 범용적으로 사용되기에 사용하신 것인지, 아니면 다른 function도 딱히 문제는 없는 것인지 궁금합니다. 강의 최고입니다!! 감사합니다.
안녕하세요 선생님 휴일(주말, 공휴일 등) 테이블을 별도로 가진 상태에서 두 날짜간의 기간을 계산할 때 휴일을 제외하여 계산하고 싶은데 방법을 잘 모르겠습니다 도움 부탁드립니다 ㅠㅜ (엑셀로 치면 networkdays 함수를 sql 로 구현하고 싶습니다.) <table A - 주문정보> prod_id order send period a 22.05.02 22.05.12 b 22.04.28 22.05.11 c 22.05.09 22.05.17 d 22.04.26 22.05.10 <table B - 휴일정보> date day hol_gubun wrk_gubun 22.04.24 일 휴일 0 22.04.25 월 평일 1 22.04.26 화 평일 1 22.04.27 수 평일 1 22.04.28 목 평일 1 22.04.29 금 평일 1 22.04.30 토 휴일 0 22.05.01 일 휴일 0 22.05.02 월 평일 1 22.05.03 화 평일 1 22.05.04 수 평일 1 22.05.05 목 휴일 0 22.05.06 금 평일 1 22.05.07 토 휴일 0 22.05.08 일 휴일 0 22.05.09 월 평일 1 22.05.10 화 평일 1 22.05.11 수 평일 1 22.05.12 목 평일 1 22.05.13 금 평일 1 22.05.14 토 휴일 0 22.05.15 일 휴일 0 22.05.16 월 평일 1 22.05.17 화 평일 1 22.05.18 수 평일 1 22.05.19 목 평일 1 22.05.20 금 평일 1 22.05.21 토 휴일 0
안녕하세요 저는 일단 전에 쓰던 dbeaver를 쓰고 있구요 sqlite 쓰려니까 설치완료후에 프로그램이 안보이더라구요 dbeaver 쿼리문에서 캡쳐드린 파일화면에서처럼 select * from 상품정보 where item_price > 15000 이라고 입력하면 아무 결과도 안나오고 행이름만 나오는데 열 형식이 string으로 지정되어서 그런것일지요.. 해결방법이 궁금합니다 (전강의에서 csv파일에서 쉼표지우는거는 시도를 이미 했어서요)