Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    387

    Consiglio su query per somme, medie e conteggi

    In uno script posso far votare da 1 a 5 (stelle) 4 caratteristiche.

    Mi piacerebbe, con una sola SQL, tirar fuori da MySQL questo:

    1a - # di voti lasciati con 1 stella
    1b - # di voti lasciati con 2 stelle
    1c - # di volti lasciati con 3 stelle
    etc etc fino a 5

    ma questa cosa va fatta per oguna delle 4 caratteristiche

    2 - inoltre mi serve il conteggio totale di tutti i voti (quindi raggruppo in un valore QUANTI hanno votato, senza interesse per cosa)

    3 - infine la media dei voti per 1 stella, per 2 stelle e cosi via

    AL momento sono arrivato qui:

    codice:
    SELECT AVG( caratteristica01 ) AS mediaCaratteristica01, AVG( caratteristica02 ) AS mediaCaratteristica02, AVG( caratteristica03 ) AS mediaCaratteristica03, AVG( caratteristica04 ) AS mediaCaratteristica04, COUNT( caratteristica01 ) AS conteggioCaratteristica01, COUNT( caratteristica02 ) AS conteggioCaratteristica02, COUNT( caratteristica03 ) AS conteggioCaratteristica03, COUNT( caratteristica04 ) AS conteggioCaratteristica04
    FROM commenti
    WHERE id_user = 3
    In effetti cosi ottengo la media (punto 3 risolto) e quanti voti ho in totale (punto 2 risolto) ma mi manca ancora sapere "quanti voti ho per 1 stella"? "quanti ne ho per 2 stelle?"

    Spero di essere stato chiaro... grazie a tutti!

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    387
    Edito ed aggiungo, sperando di diventare più semplice.

    Scomponendo il problema con una variabile sola, cosi

    codice:
    SELECT AVG( caratteristica01 ) AS mediaCaratteristica01, COUNT( caratteristica01 ) AS conteggioCaratteristica01
    FROM commenti
    WHERE id_user = 3
    GROUP BY caratteristica01
    E posto che UNA PERSONA ha votato 5 e DUE persone hanno votato 1, ottengo come risposta

    codice:
    mediaCaratteristica01 	conteggioCaratteristica01
    1 	2
    5 	1
    Che mi sembra corretto........ Anche se mi servirebbe ora sommare i conteggioCaratteristica01...

    Potrei fare 4 select, una x caratteristica, ma mi piacerebbe imparare a fare tutto con una

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.