본문 바로가기

배우기/복습노트[oracle sql]

[실습문제] 2023. 11. 3.(금) 문제 풀이(5문제)

728x90
반응형

실습문제 1. professor, department, student 테이블을 사용하여 position별로 가장 적은 급여(pay)를 받는 교수의 이름, position, pay, 학과명, 지도학생수를 출력하여라.

다중컬럼 서브쿼리 / 인라인뷰 / 상호연관 서브쿼리로 작성

 

1) 다중컬럼 서브쿼리 결과이다.

 

 

2)  인라인뷰 결과이다.

 

 

3) 상호연관 서브쿼리 결과이다.

 

 

내가 풀 땐 다 풀었고, 선생님 해설 들었을 때 맞은 거 확인했는데

왜 또 다시 풀려고 하면 못 풀지?

아직 개념이 잡히지 않은건가.

 

어쨌든, 상호연관 서브쿼리는 속도가 대체적으로 느리지만 테이블 수가 많은 경우는 간혹 성능이 높을 수는 있다.

그러나 가급적 안 쓰는 편이라고 한다.

 

 

 

실습문제 2. student, exam_01, department 테이블을 사용하여 각 학년의 시험성적의 평균보다 높은 성적을 가진 학생의 이름, 학과명, 학년, 성적을 출력하여라.

 

이 문제는 인라인뷰랑 상호연관 서브쿼리로 풀 수 있겠다.

 

다음은 상호연관 서브쿼리이다.

 

 

아 이 문제도 어제 풀었을 땐 잘 풀렸는데 오늘 다시 푸니까 잘 못풀었다.

지금 매우 속상한 상태.

 

 

728x90

 

 

실습문제 3. delivery.csv  파일을 DB화 한 후 해당 테이블을 사용하여 각 시간대별 가장 인기있는 음식을 출력하여라.

먼저 create table 결과이다.

 

이제 각 시간대별 가장 인기있는 음식을 출력해보자.

 

여기서 서브쿼리별로 속도의 차이를 발견했는데, 먼저 문제를 차근차근 접근해보자.

 

먼저 step1에서 각 시간대별 업종별 통화건수를 구하여야 한다.

이 테이블을 먼저 수립할 수 있는 것이 데이터 감각이라고 하셨다. 이제부터 step 1로부터 도출된 결과가 원본 테이블이다.

 

그 다음에 step 1에서부터 시간대별 최대 통화건수를 확인할 수 있다(step 2).

 

다음은 속도의 차이이다.

 

먼저 인라인뷰 코드이다.

오른쪽 하단에 보면 0.02sec 가 걸린 것을 확인할 수 있다.

 

 

다음은 다중컬럼 서브쿼리 결과이다.

 

 

SORT과정이 오래 걸리는 것 같다.

아직 해석할 줄은 모르지만 다중컬럼 서브쿼리에서 SORT가 눈에 띈다.

1.75sec가 소요됐다.

 

마지막으로 상호연관 서브쿼리 결과이다.

상호연관 서브쿼리는 0.55sec이다.

여기서도 SORT가 발생했다.

 

 

일단 어제 문제풀이 복습은 여기까지.

나머지는 집에 가서 복습해야겠다.

 

728x90
반응형