강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của lsk12094551
lsk12094551

câu hỏi đã được viết

[Khái niệm hay, thực hành nhiều] Phân tích và sử dụng dữ liệu SQL!

Môn học cho điểm 'thoáng' hơn mức trung bình, TOP 3 là gì?

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

Viết

·

361

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이 더 나은 걸까요?

sqlpostgresqldbms/rdbms

Câu trả lời 1

0

hongpark님의 프로필 이미지
hongpark
Người chia sẻ kiến thức

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

Hình ảnh hồ sơ của lsk12094551
lsk12094551

câu hỏi đã được viết

Đặt câu hỏi