• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

JOIN, 서브쿼리 결과 정렬 질문

23.09.11 11:44 작성 조회수 138

0

-- 4. 강의별 평균 학점, 꿀강의 TOP 3 조회

SELECT courses.title AS "강의명", ROUND(AVG(grade_points.point), 2) AS "평균 학점"

FROM courses

JOIN grades ON grades.course_id = courses.id

JOIN grade_points ON grade_points.grade = grades.grade

GROUP BY courses.title

ORDER BY AVG(point) DESC

LIMIT 3

;

1.png

 

-- 서브쿼리 이용 답

SELECT courses.title AS "강의명", ggul_courses.round AS "평균 학점"

FROM courses

JOIN (

-- 강의별_평균학점

SELECT course_id, ROUND(AVG(grade_points.point), 2)

FROM grades

JOIN grade_points ON grade_points.grade = grades.grade

GROUP BY course_id

HAVING AVG(point) > (

-- 모든_강의의_평균_학점

SELECT AVG(point)

FROM grades

JOIN grade_points ON grade_points.grade = grades.grade

)

ORDER BY AVG(point) DESC

LIMIT 3

) AS ggul_courses ON ggul_courses.course_id = courses.id

;

2.png

 

일반 JOIN이용과 서브쿼리 이용 결과가 다르게 출력되는데

서브쿼리 안에서 정렬을 했지만 최종 결과는 정렬이 되지 않네요?

왜 그런건가요..? 이러면 JOIN이 더 나은 걸까요?

답변 1

답변을 작성해보세요.

0

조인문과 서브쿼리에 대한 퍼포먼스 비교는
정렬 여부와 별개로
얼마나 빠른 시간내에
결과를 만들어느냐가 중요합니다