Problema con GROUP BY con postgres Clicca QUI per vedere il messaggio nel forum |
Vikyg13 |
Vi scrivo l'interrogazione che sto cercando di fare su postgres presente nella esercitazione 3 di laboratorio:
SELECT studenti.matricola, AVG(esami.voto) AS media FROM studenti JOIN esami
ON studenti.matricola = esami.studente
WHERE esami.voto < 18
ORDER BY studenti.matricola
Il problema è che postgres mi dà l'errore:
"column "esami.voto" must appear in the GROUP BY clause or be used in an aggregate function"
Quindi anche se utilizzo la funzione di gruppo AVG dovrei inserire la colonna in GROUP BY. Inutile dire che se inserisco "esami.voto" in GROUP BY il risultato non è quello che voglio io.
Ho letto in rete che è una caratteristica di postgres che, ad esempio, non è presente in mysql.
Come posso risolvere il problema continuando ad utilizzare postgres? |
Vikyg13 |
no ho risolto...non capisco qual'era il problema |
ildiff |
Più che un errore di pg mi sembra un'errore tuo. Usi la funzione di aggregazione nella select senza aver fatto la group by
Così
SELECT studenti.matricola, AVG(esami.voto) AS media
FROM studenti JOIN esami ON studenti.matricola = esami.studente
WHERE esami.voto < 18
GROUP BY studenti.matricola
ORDER BY studenti.matricola;
è giusto.
L'unico problema di postgres è che esprime gli errori alla c***o di cane |
WillyWonka |
beh alla cazzo, ha detto che serviva la group by..e in effetti è così |
ildiff |
Originally posted by WillyWonka
beh alla cazzo, ha detto che serviva la group by..e in effetti è così
Si ma vuole la group by su esami.voto non su studenti.matricola. Il che porta a:
1) non puoi fare la select di studenti.matricola (veramente grave visto che è chiaramente scritto che lo voglio fare)
2) AVG(esami.voto) equivale a esami.voto |
alfoguasta |
Ciao a tutti,
domanda:
ma per sostenere il progetto da frequentante devo fare la teoria entro massimo l'appello del 1 settembre?? |
ayakochan |
no teoricamente sul sito c'è scritto fino all'appello di febbraio...sempre che non mi stia sbagliando |
|
|
|