[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