실습문제 1. professor, department, student 테이블을 사용하여 position별로 가장 적은 급여(pay)를 받는 교수의 이름, position, pay, 학과명, 지도학생수를 출력하여라.
다중컬럼 서브쿼리 / 인라인뷰 / 상호연관 서브쿼리로 작성
1) 다중컬럼 서브쿼리 결과이다.
2) 인라인뷰 결과이다.
3) 상호연관 서브쿼리 결과이다.
내가 풀 땐 다 풀었고, 선생님 해설 들었을 때 맞은 거 확인했는데
왜 또 다시 풀려고 하면 못 풀지?
아직 개념이 잡히지 않은건가.
어쨌든, 상호연관 서브쿼리는 속도가 대체적으로 느리지만 테이블 수가 많은 경우는 간혹 성능이 높을 수는 있다.
그러나 가급적 안 쓰는 편이라고 한다.
실습문제 2. student, exam_01, department 테이블을 사용하여 각 학년의 시험성적의 평균보다 높은 성적을 가진 학생의 이름, 학과명, 학년, 성적을 출력하여라.
이 문제는 인라인뷰랑 상호연관 서브쿼리로 풀 수 있겠다.
다음은 상호연관 서브쿼리이다.
아 이 문제도 어제 풀었을 땐 잘 풀렸는데 오늘 다시 푸니까 잘 못풀었다.
지금 매우 속상한 상태.
실습문제 3. delivery.csv 파일을 DB화 한 후 해당 테이블을 사용하여 각 시간대별 가장 인기있는 음식을 출력하여라.
먼저 create table 결과이다.
이제 각 시간대별 가장 인기있는 음식을 출력해보자.
여기서 서브쿼리별로 속도의 차이를 발견했는데, 먼저 문제를 차근차근 접근해보자.
먼저 step1에서 각 시간대별 업종별 통화건수를 구하여야 한다.
이 테이블을 먼저 수립할 수 있는 것이 데이터 감각이라고 하셨다. 이제부터 step 1로부터 도출된 결과가 원본 테이블이다.
그 다음에 step 1에서부터 시간대별 최대 통화건수를 확인할 수 있다(step 2).
다음은 속도의 차이이다.
먼저 인라인뷰 코드이다.
오른쪽 하단에 보면 0.02sec 가 걸린 것을 확인할 수 있다.
다음은 다중컬럼 서브쿼리 결과이다.
SORT과정이 오래 걸리는 것 같다.
아직 해석할 줄은 모르지만 다중컬럼 서브쿼리에서 SORT가 눈에 띈다.
1.75sec가 소요됐다.
마지막으로 상호연관 서브쿼리 결과이다.
상호연관 서브쿼리는 0.55sec이다.
여기서도 SORT가 발생했다.
일단 어제 문제풀이 복습은 여기까지.
나머지는 집에 가서 복습해야겠다.
'배우기 > 복습노트[oracle sql]' 카테고리의 다른 글
[복습] SQL | Oracle SQL의 분류(DDL, DML, DCL, TCL, DQL) 중 DDL의 CREATE + 복습후기(20231106) (1) | 2023.11.07 |
---|---|
[복습] SQL | Oracle join 넘어 또 산, 서브쿼리 (3) (0) | 2023.11.06 |
[실습문제] 2023. 10. 31.(화) 문제 풀이(5문제) (0) | 2023.11.05 |
[복습] SQL | Oracle join 넘어 또 산, 서브쿼리 (2) + 복습후기(20231103) (0) | 2023.11.04 |
[실습문제] 2023. 11. 2.(목) 문제 풀이(5문제) (0) | 2023.11.03 |