백업/정보컴퓨터

[정보][DB][SQL] 2017-B-03 SQL

Unknown9 2021. 2. 5. 18:40
반응형

3. 다음은 STUDENT 릴레이션과 DEPARTMENT 릴레이션을 나타낸 것이다.

<SQL문>의 ㉠, ㉡의 수행 결과를 <작성 방법>에 따라 순서대로 쓰시오. [4점]

작성방법에 따라서 결과를 확인해 보겠습니다.

(1) ㉠의 수행 결과를 쓸 것. (단, 수행 결과의 투플 형식은 <3, 50.0, 60>과 같다.)

SELECT d_number, AVG(score), MAX(score)
FROM STUDENT
GROUP BY d_number -> d_number의 그룹
ORDER BY AVG(score) DESC ; -> 내림차수

d_number AVG(score) MAX(score)
2 85.0 90
1 75.0 80

 

(2) ㉡의 수행 결과를 쓸 것. (단, 수행 결과의 투플 형식은 <홍길동, 과학교육, 60>과 같다.)

SELECT S.s_name, D.d_name, S.score
FROM STUDENT AS S, DEPARTMENT AS D
WHERE score > (SELECT AVG(score)
  FROM STUDENT
  WHERE d_number = S.d_number)
  AND S.d_number = D.d_number ;

 

(SELECT AVG(score)


  FROM STUDENT
  WHERE d_number = S.d_number) ->d_number = S.d_number인 학생의 평균을 구해서 선택

AVG(score)
75.0
85.0

score > AVG(score) AND S.d_number = D.d_number

: 평균보다 큰 경우에 출력하는 것 -> 해석이 좀 그런데 Join으로 해석을 한다고 합니다.

 

S.s_name  D.d_name S.score
이민구 국어교육 80
신지수  컴퓨터 교육 90

이것이 답이 맞을 까요?

 

한번 비교를 해보고 한번에 맞으면 좋습니다. -_-a 벌써 몇번째 풀이인지...

ㅋ 맞습니다.

 

반응형