
#sql #pl/sql #naukaprogramowania
cześć mam problem z jednym zadaniem. Napiszcie co robię źle.
cześć mam problem z jednym zadaniem. Napiszcie co robię źle.
Znajdź studenta z najwyższą średnią ocen
select idstudent, ocena
from ocena
where ocena in
(select (max(avg(ocena)))
from ocena
group by ocena)- Najlepsze
- Wszystkie komentarze







SELECT
idstudenta, AVG(ocena)
FROM
ocena
Group By idstudenta
Order by 2 DESC
Twój 'wewnętrzny' select zwróci Ci średnią ze wszystkich ocen, nie średnią per student, group by przemyśl.
ocena in to też potworek i bez sensu. Po pierwsze in nie do tego służy, po drugie jak średnia Ci wyjdzie 4.23 to jak sobie wyobrażasz dopasowanie to do liczb całkowitych - 2,3,4,5, po trzecie to Ty chciałbyś studenta nie? ;)
Komentarz usunięty przez autora
Ginden podał Ci gotowe rozwiązanie. Pierwsza krotka wyniku będzie zawierać id najlepszego studenta.
@Taczi: raczej odwrotnie, nie może użyć w select pola, którego nie ma w group by