Salve,
ho l'esigenza di calcolare la media dei punteggi assegnati ad ogni entità di un database, rappresentata dallo stesso id. I punteggi, nelle colonne c1 c2 c3 e c4 possono essere inseriti varie volte, quindi bisogna calcolare la somma dei punteggi di ogni entità diviso 4 e successivamente diviso il numero delle volte presenti nel db.
Ho trovato la seguente query che sembra funzionare correttamente:

Codice PHP:
SELECT idsumc1 ) , sumc2 ) , sumc3 ) , sumc4 ) , avg( (
c1 c2 c3 c4
) / ( if( c1 !=01) + if( c2 !=01) + if( c3 !=01) + if( c2 !=01) ) ) AS media
FROM votazioni
GROUP BY id 
Il problema è che non capisco il funzionamento dell'istruzione if( c1 !=0, 1, 0 ), anche se penso sia usata per definire quante volte è presente il record con la stessa entità...
Hop provato così a sostituire con una cosa simile:

Codice PHP:
SELECT idsumc1 ) , sumc2 ) , sumc3 ) , sumc4 ) , count(id) as totavg( (
c1 c2 c3 c4
) / ( tot  ) ) AS media
FROM votazioni
GROUP BY id 
ma ho l'errore: #1054 - Unknown column 'tot' in 'field list'
Quindi vorrei riuscire a capire il funzionamento di quella sintassi oppure sapere un modo alternativo per ottenere questo risultato....
Thx !!!

Codice PHP:
CREATE TABLE `votazioni` (
  `
idint(10NOT NULL,
  `
c1int(2NOT NULL,
  `
c2int(2NOT NULL,
  `
c3int(2NOT NULL,
  `
c4int(2NOT NULL
ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=;

--
-- 
Dump dei dati per la tabella `votazioni`
--

INSERT INTO `votazioni` ( `id`, `c1`, `c2`, `c3`, `c4`)VALUES
21234),
82346),
62112),
61543); 
Risultati: id 2 media 2,5
id 6 media 2,37
id 8 media 3,75