[Db] incartato col count

Domenico L. domenico.lorusso a pleiade.it
Lun 18 Dic 2006 15:53:27 CET


Marcello Vezzelli ha scritto:
> Faccio un riepiloghino...
> ho una tabella cosė composta:
>
> CREATE TABLE `frutta` (
> `id` INT NOT NULL AUTO_INCREMENT ,
> `frutto` VARCHAR( 100 ) NOT NULL ,
> `data` DATE NOT NULL ,
> PRIMARY KEY ( `id` )
> ) TYPE = innodb;
>
> dentro ho nomi di frutti e date di raccolta.
> Voglio una tabella che mi riporti relativamente alle "pere", un record
> per ogni mese:
> - mese di raccolta
> - totale frutti raccolti in quel mese
> - totale pere raccolte in quel mese
> - percentuale delle "pere" rispetto al totale
>   
ti odio! spiegarti prima? :-P

select date_format( data, '%Y %m') as dt,
    'arancia' as frutto,
    sum( case when frutto = :variabileUtente then 1 else 0 end) as 
contoFruttoScelto,
    count(*) as totale,
    sum( case when frutto = :variabileUtente then 1 else 0 end) / 
count(*) * 100 as percentuale
#    contoFruttoScelto/totale*100 as percentuale #->Non funziona purtropo
from frutta
group by dt

>
>   

riscrivere sum( ..) e count con gli stessi identici caratteri e spazi 
evita che il motore calcoli 2 volte la stessa cosa :-)

ciauz

-- 
Domenico L.                             icq: 645 44 861

per stupire mezz'ora basta un libro di storia,
io cercai di imparare la Treccani a memoria... [F.d.A.]



Maggiori informazioni sulla lista Db