Làm thế nào để tính AVG() cho từng sinh viên

Chào mọi người, mình xin nhờ mọi người giúp một tí.
Bài có 3 bảng:

  • Bảng 1 - SV: MSSV, tên
  • Bảng 2 - Lớp: Malop, MaMon
  • Bảng 3 - Điểm: MSSV, Malop, Diem
    cái này mình đi tìm AVG để tìm sinh viên có MAX AVG, và tìm SV có AVG = 5
select SV.MSSV, SV.HoTenSv, AVG(D.Diem) as "TB"
from 
	sinhvien$ as SV full join diem$ as D on SV.MSSV = D.MSSV
	full join LopMH$ as L on D.Malop = L.Malop
group by SV.MSSV, SV.HoTenSv, D.Diem, L.Malop

mình chạy cái này nó ra như thế này, nó liệt kê ra điểm của SV đó, điểm có bao nhiêu cột thì tên sinh viên lại duplicate bấy nhiêu cột, có cách nào để tính AVG k mọi người??

thanks for your help :smiley:

Cậu thử dùng query này xem:

select SV.MSSV, SV.HoTenSv, AVG(D.Diem) as "TB"
from 
	sinhvien$ as SV full join diem$ as D on SV.MSSV = D.MSSV
	full join LopMH$ as L on D.Malop = L.Malop
group by SV.MSSV, SV.HoTenSv
4 Likes

nó chạy r nè, thanks you very much :smiley:, vậy là group by dư nên nó k ra :joy:

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?