각 의사의 평균 진료비보다 진료비가 큰 진료만 조회해 다음 [결과]를 … | [SQLD] SQL 개발자 기출유형 모의고사 2회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 2회
각 의사의 평균 진료비보다 진료비가 큰 진료만 조회해 다음 [결과]를 얻으려 한다. ( ㉠ )에 들어갈 조건으로 옳은 것은?

[진료]

진료번호의사번호환자번호진료비
1D1P130000
2D1P250000
3D1P340000
4D2P120000
5D2P426000
6D3P270000
7D3P590000
SELECT A.진료번호, A.의사번호, A.진료비
  FROM 진료 A
 WHERE A.진료비 > (SELECT AVG(B.진료비)
                     FROM 진료 B
                    WHERE ( ㉠ ))
 ORDER BY A.진료번호;

[결과]

진료번호의사번호진료비
2D150000
5D226000
7D390000
1
B.진료번호 = A.진료번호
2
B.환자번호 = A.환자번호
3
B.의사번호 = A.의사번호
4
A.의사번호 IS NOT NULL
해설

바깥 행의 의사번호를 안쪽에서 참조해야 행마다 같은 의사의 평균이 계산되므로 B.의사번호 = A.의사번호가 맞다.

연관 서브쿼리는 메인쿼리 행마다 다시 실행되어 D1 평균 40000, D2 23000, D3 80000과 비교하고 2·5·7번만 남는다.

  • 환자번호 상관: 환자별 평균과 비교해 1·6번이 나온다.
  • 진료번호 상관: 자기 자신의 평균과 같아 0행이다.
  • A.의사번호 IS NOT NULL: 전체 평균(약 46571)과 비교해 2·6·7번이 나온다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[SQLD] SQL 개발자 기출유형 모의고사 2회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요SQLD SQL 개발자 실전 모의고사 암기장 전체 보기