• User

    Scelgo gli id da una tabella e calcolo la media delle risposte con i dati su tab 2

    Voglio vedere se le risposte ad un questionario tra condomini e amministratori di condominio sono molto diverse o simili.

    Nella prima tabella "NOMI" ho questi campi:
    u_id
    u_nome (dove salvo il nome)
    u_admin (dove metto 1 se è un admin, 0 se è un condominio)

    Nella seconda tabella "RISPOSTE" ho questi campi
    s_id
    s_idriferimento (dove salvo il valore u_id di riferimento)
    s_risposta (dove salvo un valore da 1 a 10)

    Ora vorrei calcolare queste due medie: la prima composta da tutti gli admin al seconda dai solo condomini.

    Quindi potrei fare un SELECT * FROM nome WHERE u_admin ='1'
    e poi come ricavo i valori di s_risposta per solo queste righe? E come ne calcolo velocemente la media?

    C'è un modo veloce?
    Grazie


  • Super User

    Devi fare una join:

    SELECT s_risposta FROM risposte INNER JOIN nomi ON nomi.u_id = risposte.s_idriferimento WHERE nomi.u_admin = 1

    Questo ti mostra ogni singola risposta data dagli amministratori. Se vuoi fare la media devi usare AVG ( mi pare sia questa la funzione ), però ricorda che il risultato lo avrai come numero non intero ( da arrotondare con round ).

    In tal caso:

    SELECT AVG(s_risposta) FROM risposte INNER JOIN nomi ON nomi.u_id = risposte.s_idriferimento WHERE nomi.u_admin = 1


  • User

    Grazie per la risposta.
    Ho usato la funzione IN.
    $query= SELECT blablabla IN (SELECT ute_id FROM as_utenti WHERE u_admin='1')