Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683

    sommare gruppi di linee con sql

    Ciao a tutti! ho due tabelle, una con l'elenco di alcuni piatti (pasta, bistecca ecc..), l'altra con l'elenco dei voti.
    la tabella dei voti contiene alcuni valori come facilità di preparazione, velocità della preparazione ecc... e poi ovviamente il campo che specifica a quale id della tabella piatti fanno riferimento.

    quindi, se 10 utenti danno un voto, da -5 a 5 allo stesso piatto, quando visualizzerò il voto complessivo per ogni campo (facilità, velocità ecc...) dovrò fare la somma dei voti dati dai 10 utenti.

    Idealmente so come farlo, ma con due cicli for. volevo sapere se magari si poteva fare solo con l'sql.
    graize

  2. #2
    Puoi utilizzare la funzione SUM() per farti restituire direttamente la somma.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Uhm ... si la sum e' la funzione sql ... ma nei voti quindi fai un totale dei voti dati dagli utenti ...
    Questo dato pare poco indicativo anche perche' non e' rapportato a quanti utenti hanno votato.

    FOrse un voto medio sarebbe meglio ?

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683
    Originariamente inviato da Virus_101
    Uhm ... si la sum e' la funzione sql ... ma nei voti quindi fai un totale dei voti dati dagli utenti ...
    Questo dato pare poco indicativo anche perche' non e' rapportato a quanti utenti hanno votato.

    FOrse un voto medio sarebbe meglio ?
    effettivamente... hai perfettamente ragione...
    ma poi la somma non penso sia sufficiente anche se volessi usare la somma e non la media, perchè io ho ad esempio 10 valori per la velocità di preparazione e 10 valori per la facilità... non devo avere un risultato con la somma/media di 20 righe ma due risultati, con la somma/media delle 10 righe dello stesso gruppo

  5. #5
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    esatto per cui la query la fai in modo ch ti dia 2 valori, 1 il num di utenti che hanno votato 2 il voto totale ... e volendo ci aggiungi pure il terzo con il conteggio gia' fatto

    ad esempio selec count(*) tutti , sum(voto1) somma from tabella....

    O una cosa simile ...

    EDIT: ah dimenticavo porva a prendere in considerazione la creazione di una view, in questo modo hai 1 tabella gia' fatta che si aggiorna in automatico e quando devi vedere i valori li carichi da view senza dover impazzire con procedure di conteggio ...

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683
    poi provo a vedere allora... con il phpmyadmin si riesce?

  7. #7
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Beh li lanci le query per provarle

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    1,683
    si ma intendevo se si poteva far la view

    comunque se facessi:
    codice:
    SELECT count( * ) , SUM( velocita )
    FROM ricette
    e avessi una tabella tipo:
    velocita | id_ricetta
    2______|______1
    5______|______2
    3______|______1
    1______|______2

    mi restituirebbe
    count(*) | SUM(velocita)
    4______|______11

    mentre io vorrei
    count(*) | SUM(velocita)
    2______|______5
    2______|______6

  9. #9
    Puoi calcolare direttamente la media con AVG()
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  10. #10
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    devi impostare dei filtri come il group by

    per le view di solito prima si testa la select poi si crea la vie in quanto le view sono tabelle che venogno create al volo e dipendono dalla select impostata : http://dev.mysql.com/doc/refman/5.0/en/create-view.html

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.