강사님께서 with절을 꾸준히 보여주시는 이유가 있을거라 생각해서 찾아보니 장점도 있지만 단점도 있더라구요 with를 사용하면 임시테이블을 만들기 때문에 장점은 재귀 사용이 가능하고, 반복 사용이 가능하다. 단점은 불필요한 코드가 들어가서 가독성이 나빠질수 있고 임시 테이블을 만들기 때문에 성능에 영향을 줄수있다고 적혀있더라구요 강사님께서는 with를 꾸준히 보여주시는 이유가 궁금합니다. select a.dname , round(avg(c.sal),0) as "부서별 평균 급여" from dept a join emp b on a.deptno = b.deptno and a.dname in ('SALES','RESEARCH') left join emp_salary_hist c on b.empno = c.empno group by a.dname ; 저는 and에 부서명 조건을 추가했습니다. 그 이유는 dept.dname에 인덱스가 없고 where에 dname을 넣으면 조인후에 필터가 되기때문에 join 조건에 추가하면 조인할때 데이터를 조금 더 줄인 상태에서 실행한다고 이해를 했습니다. 제가 잘못 이해를 하고 있는 걸까요? 조인 할때 and 조건도 마찬가지로 인덱스가 없다면 큰 상관이 없는건가요 ?
sqliteBrowser 사용하는 수업에서 db.sqlite3를 열려고 하니, database is locked 라는 메시지가 뜹니다. 그래서 ChatGPT나 Bard... Googling을 이용해봤지만, 저에게 해당될만한 내용이 없네요. 혹시 몰라 재부팅도 해봤습니다. 이거 DB부분만 지웠다가 다시 까는 방법이 있을까요? (makemigrations, migrate 부분)
select * from emp_salary_hist a join emp_dept_hist b on a.empno = b.empno and a.fromdate between b.fromdate and b.todate ; select * from emp_salary_hist a join emp_dept_hist b on a.empno = b.empno where a.fromdate between b.fromdate and b.todate ; 12:29에서 where 보다 and로 연산 했을때 join의 양을 확 줄여줘서 where 절로 했을때보다 속도가 빠르다고 말씀해주셨습니다. 이해가 안되는 부분이 있습니다. where에서 조건을 걸어 필터링된 결과에서 join을 할텐데 on ~ and 로 하는게 더 빠른게 연산되는 이유가 궁금합니다. where에서 인덱스가 있을경우 해당 값을 풀스캔하지 않고 index에서 걸러진 데이터만 가지고 join을 실행하는걸로 이해하고 있습니다. 지금 where a.fromdate와 b.fromdate는 인덱스가 있고 b.todate는 인덱스가 없는데 a.fromdate 와 b.fromdate를 비교할때는 인덱스를 사용하고 a.fromdate 와 b.todate를 비교할때에는 풀 스캔이 되는건가요? 만약에 반대로 a.fromdate는 인덱스가 없고 b.fromdate만 인덱스가 있다면 이것도 풀스캔이 되는 건가요?
강사님 좋은 강의 감사합니다 ! (__) 다름이 아니라 답변을 보는 와중에 제가 이해한 내용이 강사님께서 말씀하신 의도가 맞는지 궁금해서 입니다. https://www.inflearn.com/questions/594471/%EA%B0%95%EC%82%AC%EB%8B%98-%EB%8B%A4%EC%A4%91-%EC%A1%B0%EC%9D%B8-%EC%A7%88%EB%AC%B8-%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4 마지막 줄에 작성해주신 여러개의 테이블로 조인할 경우에는 조인key에 따라 조인시 만들어 지는 집합의 레벨을 순차적으로 생각해 줘야 합니다. 이 뜻이 다중으로 테이블을 조인을 할때 emp 1 join emp_salary_hist M => emp_salary_hist 레벨의 조인 결과 -> emp_salary_hist M : dept 1 => emp_salary_hist 레벨의 조인 결과 이렇게 1 : M -> M : 1 - > M 이렇게 조인을 하는게 아니라 1: M -> 1 :M -> M 으로 조인을 하라는 말씀이신건가요 ? 추가 질문으로 M 집합의 크기가 큰게 뒤로 가는게 더 좋은 SQL이라고 할수있을까요? 그리고 이렇게 코드를 작성해야하는 이유도 궁금합니다.
안녕하세요 선생님 현재 모델링 및 평가(회귀)부분을 학습하고 있습니다. 코드를 따라가면서 실습을 진행하고 있는데, rmse 값이 선생님과 달라 질문 드립니다. 제가 알기로는 모델링을 하는 과정에서 예측한 값이 달라질 수 있고, 이에 따라 평가지표인 rmse 값이 다를 수 있다...라고 알고 있습니다. 그런데 값의 차이 뿐만이 아니라 baseline과 scaler 적용 결과가 좋은지 나쁜지가 달라 질문드립니다. 예를 들어, 선생님께서 하셨을때는 RandomForestRegressor의 baseline이 rmse값이 가장 좋았고(작았고), scaler를 적용했을 때 rmse가 커져서 scaler 적용은 하지 않는게 좋다~라는 내용의 실습이었는데 제가 했을 때는 baseline의 rmse보다 scaler를 적용했을 때의 rmse가 작아 scaler를 적용하는 것이 좋다..는 결론이 나옵니다. 질문을 정리하자면, 모델링을 하는 과정에서 선생님과 제가 실습한 예측값과 rmse가 다른게 맞는지 다른게 맞다 해도 scaler 적용여부 등을 바꿀 수 있을 정도로 예측값과 rmse가 달라질 수 있는지 (추가질문)달라지더라도 선생님 실습값 : 4728.xx 제 실습값 6025.174022213681 이정도로 달라질 수 있는지... (추가질문) 모델링 및 평가(회귀) 24:56에서 수험자는 알 수 없는 영역>y_test로 rmse로 구하시고 결과값이 17909.xx로 나왔는데 여기에서도 charges에 로그변환 한 이후기 떄문에 원래는 np.exp(pred)로 rmse를 구했어야 하는지 일 것 같습니다. 감사합니다.
마지막 문제 리트코드 626문제 풀이를 할 때 SELECT CASE WHEN MOD(id, 2) = 1 AND id = COUNT(*) OVER() THEN id WHEN MOD(id, 2) = 1 AND id != COUNT(*) OVER() THEN id+1 ELSE id-1 END id , student FROM seat ORDER BY id 이렇게 프롬절에 서브쿼리를 안 만들고, 셀렉트절 CASE WHEN THEN에 COUNT윈도우함수를 사용하면 왜 답이 안 나오는지 궁금합니다.
강사님! 안녕하세요. 수강하다가 질문이 생겨서 질문드립니다! 섹션1. 조인실습03에 다른건 다 이해가 되는데 join nw.shippers d on b.ship_via = d.shipper_id 여기서 shippers table과 orders 테이블이 shipper id = ship via로 조인시키는 부분이 이해가 안 됩니다ㅜㅜ 왜 두 컬럼으로 조인을 시켜 주는 것일까요??? shipper id가 shipper table에 고유칼럼인건 이해했습니다!
SELECT start_date FROM projects WHERE start_date NOT IN(end_date) 로 작성하면 엔드데이트가 제외 안 되고 SELECT start_date FROM projects WHERE start_date NOT IN(SELECT end_date FROM projects) 서브쿼리로 작성해야지만 엔드데이트가 제외되는지 궁금합니다.
파이참으로 100~200 까지 3의 배수 인쇄하고, 그의 합 구하고 있는데 3의 배수 5개씩 인쇄는 잘 했는데 합계가 이상하게 구해집니다. 오류가 어디에 있는 건지 모르겠어요.. 고치면 오류떠서 아예 실행이 안되는데 ㅜㅜ for문이랑 while문 두개로 만들고 있는데 둘다 합계만 이상하게 뜹니다. ㅠ <<for문>> a = 0 hap = 0 count = 0 for a in range(100, 201) : if a % 3 == 0 : print(a) count = count + 1 if count % 5 == 0 : print() a = a + 1 hap = hap + a print("100~200 중 3의 배수의 합 : %d" % hap) <<while문>> a = 100 count = 0 hap = 0 while a <= 200 : if a % 3 == 0 : print(a) count = count + 1 if count % 5 == 0 : print() a = a + 1 hap = hap + a print("100~200 중 3의 배수의 합 : %d" % hap)
안녕하세요 강사님 사용자별 월별 세션 접속 횟수의 구간별 분포 집계 SQL 구하고 시각화 하기 - 02 강의 부분에서 질문을 드리려고 하는데요. 강사님께서 monthly_user_cnt를 case when으로 범위를 자의적으로 정해서 구분을 하셨는데, 만약 파이썬을 활용하면 히스토그램을 본다던지, value_counts() 등등으로 구분 시도를 할 수 있을 것 같은데, 단지 sql로만 활용을 한다면, 이러한 구분을 어떤 방법으로 하는게 좋을지 알 수 있을까요? 예를 들어 강의에서는 1번, 2-3번, 4-8번 이렇게 구분을 하신 이유와 방법에 대해서 알고 싶습니다. 부가적으로 질문을 드리고 싶은게, 보통 with문을 만드실 때 group by 까지는 with 문 안에서 진행을 하시고, order by 같은 경우에는 with 밖에서 쓰시던데, with문 안에서 order by 를 안하는 이유에 대해서 있을까요?
안녕하세요 현재 수강중인 학생입니다. 연습문제중에 limit만 입력해서 런 에스큐엘하면 Erro in SQL: Syntax error in From clause. 라는 에러가 계속 발생되서 한번도 리밋 조건을 확인해볼수가없는데 제가 무엇을 잘못하고있는것인지 알 수 있을까요? 감사합니다. 아래는 제가 입력한 조건입니다. SELECT * FROM Customers limit 5 ;
[리뉴얼] 처음하는 파이썬 백엔드와 웹기술 입문 (파이썬 중급, flask[플라스크] 로 이해하는 백엔드 및 웹기술 기본) [풀스택 Part1-1]
위에 코드와 같이 웹서버를 열 때 처음 실행만 정상적으로 뜨고 두 번째부터는 로드중으로 계속 화면에 아무것도 안 뜹니다. 주피터 노트북과 아나콘다 프로그램을 완전히 종료하고 다시 접속해 위에 코드를 입력하면 다시 처음만 정상실행되고 두번째부터는 무한로드중으로 뜹니다. 다른 컴퓨터로 실행해봤을 때는 정상적으로 화면에 출력되는 것을 확인했고 제 노트북만 이러네요. 이거 때문에 아나콘다도 다시 설치해보고 윈도우에 내장되어 로컬호스트 주소도 확인하고 윈도우도 재설치해보고 컴퓨터 자체를 포맷해봤는데도 계속 같은 증상이네요. 혹시 문제가 무엇일까요? 이거 때문에 수업 진도를 못 나가고 있어요. 도와주세요ㅠㅠ
안녕하세요 선생님🙇♀️ 쿼리문을 작성하다가 아래와 같이 작은 따옴표와 큰따옴표 둘 다 적용해 보았는데, 결과는 같게 나왔습니다. 그러면 쿼리문 작성 시, 작은따옴표와 큰 따옴표의 차이가 없는 걸까요?? 감사합니다. select * From Customers where Country like "M%" ; select * From Customers where Country like 'M%' ;
안녕하세요 colab을 이용하던 도중에 갑자기 이상한 현상이 생겨서 질문 남깁니다! 영어를 사용하면 별 문제가 없는데 이상하게 한글만 사용하면 글씨색도 변하고 위의 사진 처럼 셀의 화면이 내려가거나 확대 됩니다. 주석뿐만 아니라 코드에도 한글을 넣으면 똑같은 현상이 발생합니다. 작성시에는 화면이 보이지 않지만 작성후 방향키나 공백을 넣으면 다시 원래 화면으로 돌아옵니다. ㅠㅠㅠㅠ 너무 거슬려서 주석을 작성 할 수 가 없습니다ㅠㅠㅠ 해결책이 있을까요 이것저것 옵션 다 만져봤지만 해결이 안돼서 여쭙니다.