
Partendo dalla tabella studenti, ho creato una seconda tabella, “responsabili” costituita da due soli campi: resp e media voti. Di sicuro esisterà un procedimento più breve, ma non avendo ancora acquisito dimestichezza con Access ed essendo nemico giurato dei conti e della matematica ho proceduto in una maniera squisitamente umanistica! Ho iniziato estraendo "chi" è stato valutato da "chi" e che voto ha preso….
SELECT autore,voto FROM studenti WHERE resp = luca
Luca: media dei voti: 20.SELECT autore,voto FROM studenti WHERE resp = luca
SELECT autore,voto FROM studenti WHERE resp =Giuseppe
Giuseppe media dei voti: 16
SELECT autore,voto FROM studenti WHERE resp = Giovanni
Giovanni media dei voti: 12,7
SELECT autore,voto FROM studenti WHERE resp = Stefano
Stefano media dei voti: 16
Avendo estratto la media dei voti ho provveduto a creare la tabella responsabili per poterla poi "joinare" con quella studenti.
Attraverso una query di tipo JOIN è possibile ottenere come risultato di un'unica query un insieme di dati provenienti da tabelle differenti che presentino però una relazione tra di loro.
Se scrivo una istruzione del tipo: SELECT* from studenti, responsabili produrrà in uscita l'insieme di tutti i possibili accoppiamenti tra un elemento della prima tabella e un elemento della seconda; matematicamente si tratta del prodotto cartesiano tra le due tabelle, che avrà un numero di righe pari al prodotto tra il numero di righe delle due tabelle.
Un risultato questo di scarso interesse, mentre è sicuramente di maggiore utilità poter estrarre dal DB un sottoinsieme opportuno del prodotto cartesiano. Per esempio se volessi sapere la corrispondenza tra la tabella studenti e quella responsabili, per quanto concerne la votazione di ogni blog e la corrispondenza con la media aritmetica di voti del singolo assistente che ha valutato lo stesso, opererò la seguente join:
SELECT studenti.indirizzo, studenti.voto, responsabili.mediaVoti, responsabili.resp FROM studenti INNER JOIN responsabili ON studenti.resp = responsabili.resp
SELECT autore,voto FROM studenti WHERE resp = Stefano
Stefano media dei voti: 16
Avendo estratto la media dei voti ho provveduto a creare la tabella responsabili per poterla poi "joinare" con quella studenti.
Attraverso una query di tipo JOIN è possibile ottenere come risultato di un'unica query un insieme di dati provenienti da tabelle differenti che presentino però una relazione tra di loro.
Se scrivo una istruzione del tipo: SELECT* from studenti, responsabili produrrà in uscita l'insieme di tutti i possibili accoppiamenti tra un elemento della prima tabella e un elemento della seconda; matematicamente si tratta del prodotto cartesiano tra le due tabelle, che avrà un numero di righe pari al prodotto tra il numero di righe delle due tabelle.
Un risultato questo di scarso interesse, mentre è sicuramente di maggiore utilità poter estrarre dal DB un sottoinsieme opportuno del prodotto cartesiano. Per esempio se volessi sapere la corrispondenza tra la tabella studenti e quella responsabili, per quanto concerne la votazione di ogni blog e la corrispondenza con la media aritmetica di voti del singolo assistente che ha valutato lo stesso, opererò la seguente join:
SELECT studenti.indirizzo, studenti.voto, responsabili.mediaVoti, responsabili.resp FROM studenti INNER JOIN responsabili ON studenti.resp = responsabili.resp
Si palesa qui una lapalissiana verità: i responsabili in questione non sono affatto larghi di voti!Diamoci da fare...:)

2 commenti:
Bell'esempio! solo che dal punto di vista strettamente statistico (hai a che fare con noi, eheh), considerare nel calcolo della media anche il voto a chi ha solo dato il link del blog non ha scritto niente non è corretto. Se vuoi farla perfetta, dovresti selezionare solo i voti strettamente maggiori di 0: in questa maniera vedresti sì che non siamo di manica larga, ma neanche così cattivi. Inoltre considerare solo i voti maggiori di 0 permette di fare dei confronti tra di noi, in quanto persiste la variabilità insita nel fatto che ognuno ha valutato blog diversi, ma elimini un'altra fonte di variabilità, ovvero la percentuale di blog completamente vuoti sul totale dei visionati per singolo valutatore.
Dopo questo precisione da "sapientino", ti auguro Buona Serata,
Giovanni
eheh :) la mia logica squisitamente umanistica voleva essere proprio una pezza a colori che coprisse le mie lacune matematico-statistiche!ora che ci penso però è davvero una cosa ovvia!la prossima volta la terrò ben presente!Di certo siete più "buoni" di quanto le mie medie aritmetiche falsate vi avessero dipinto!Grazie del commento e buona serata anche a te!
mariangela
Posta un commento