Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Didattica > Corsi A - F > Basi di dati ~ comunicazione digitale
 
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

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate