SELECT imię, nazwisko, avg(ocena) FROM studenci WHERE grupa=’A’ GROUP BY id.studenta
0
0
Nie masz nigdzie aliasu bądź tabeli id
- id.studenta
.
0
Czyli jak powinno być poprawnie?
2
SELECT imię, nazwisko, avg(ocena) FROM studenci WHERE grupa=’A’ GROUP BY imię,nazwisko
0
tak na marginesie grupowanie tylko po polach 'imię' i 'nazwisko' nie jest dobrym rozwiązaniem, bo co się stanie gdy w grupie trafią się dwie osoby tak samo się nazywające .
lepszym było by takie rozwiązanie :
SELECT imię, nazwisko, iDstudenta AVG(ocena) FROM studenci WHERE grupa=’A’ GROUP BY imię,nazwisko,iDstudenta
bo gwarantuje unikalność zestawu pól w klauzuli
GROUP BY
a jeszcze lepiej stworzyć dwie tabele , jedną ze studentami (bez ocen) a drugą tylko z ocenami i zrobić złączenie albo zagnieżdżonego selecta
select imie,nazwisko,idStudenta, (select avg(ocena) from oceny where oceny.iDstudenta=studenci.iDdstudenta) as srednia from studenci where grupa='A'