관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

서브쿼리 3 - 반환에 따른 분류 2 : 다중행 서브쿼리 실습해보기 본문

알고리즘 및 자료 관리/SQL

서브쿼리 3 - 반환에 따른 분류 2 : 다중행 서브쿼리 실습해보기

huenuri 2024. 10. 13. 21:49

이어서 실습문제를 풀어보겠다.


 

 

 

실습 6 - 다중 행 서브쿼리 3

 

 


 

 

 

1. 직원들의 생년월일 조회하기

 

 

 

 

우선 나이가 가장 많은 사원들을 조회해 보았다. 나이가 많은 사원은 생년월일 값이 가장 적다는 의미의 min을 사용한다.


 

 

 

 

2. 나이가 가장 많은 직원 조회하기

 

 

 

이름과 함께 사원들의 정보가 모두 출력되었다.

 

 


 

 

 

 

실습 7 - 하나라도? 혹은 전부? : ANY, ALL

 

 


 

 

 

1. 테이블 조회하기

 

 

먼저 테이블의 정보를 조회해본다.

 

 

급여 시작일과 언제까지 받았는지의 날짜와 급여가 출력되었다. 이제 여기서 2000년 12월 이전인 사람들의 급여 중 더 적은 급여를 받은 직원의 급여 정보를 검색해야 한다.


 

 

 

2. 특정 직원의 급여 정보 출력하기

 

 

 

 

2000년 12월 31일 이전에 급여 정보가 출력되었다. 이제 메인쿼리를 작성해 보겠다.


 

 

 

 

3. 메인쿼리 작성하기

 

 

 

메인 쿼리는 서브쿼리보다 작도록 표시해 준다. 그리고 하나의 급여보다 더 작아야 하므로 any를 사용한다. 이렇게 하나의 값보다 작은 즉 56000보다 작은 값이 모두 나타났다. < any는 최대값을 비교하는 것과 비슷하다.


 

 

 

 

4. 마지막 조건 추가하기

 

 

 

여기서는 46000보다 작은 값이 출력되었다. all은 최소값을 찾는 것과 같다. 전체 코드는 다음과 같다.

 

 

 

 

 

 

이 문제는 정말 어려웠는데 설명을 듣지 않으면 절대로 혼자서는 풀지 못할 문제였다. 다른 실습 문제에 비해 풀고 이해하는데 많은 시간이 걸렸다.


 

 

 

 

 

퀴즈 2 - 반환에 따른 분류

 

 

 

결과를 2개 이상 반환하는지 1개 이상인지 조금 헷갈렸다. 그래도 4번은 좀 아닐 것 같았다.

 


 

 

 

학습을 마치고

어려운 서브쿼리 단원이 이제 딱 한 과정만 남겨놓고 있다. 지금까지 잘 해왔으니 남은 시간도 집중해서 열심히 공부해 볼 것이다. 예상 목표 시간보다 10분 이상은 더 걸릴 것 같다.