[Db] incartato col count
Domenico L.
domenico.lorusso a pleiade.it
Lun 18 Dic 2006 14:26:40 CET
Marcello Vezzelli ha scritto:
> Cristiano Verondini ha scritto:
>
>>> E' possibile sapere quante pere ho raccolto diviso per mese?
>>>
>> SELECT
>> COUNT(frutto) AS C,
>> DATE_FORMAT(data,'%Y %m') AS DT,
>> frutto
>>
>> FROM Tabella
>>
>> GROUP BY DT, frutto
>> ORDER BY DT, C DESC
>>
>>
>
> Questa è al momento lo stato dell'arte della query del raccoglitore di
> frutta.
>
> Ora... altra complicazione...
> Il totale dei frutti raccolti ogni mese.
>
> SELECT DATE_FORMAT( data, '%Y %m' ) AS DT, COUNT( * ) AS TOT
> FROM frutta
> GROUP BY DT
> ORDER BY DT
>
> Volendo unirle...
>
> SELECT * FROM
> (
> SELECT COUNT( frutto) AS C,
> DATE_FORMAT(data,'%Y %m') AS DT,
> frutto
> FROM frutta
> GROUP BY DT, frutto
> ORDER BY DT, C DESC
> ) AS T1
> JOIN
> (
> SELECT DATE_FORMAT( data, '%Y %m' ) AS DT,
> COUNT( * ) AS TOT
> FROM frutta
> GROUP BY DT
> ORDER BY DT
> ) AS T2
> ON T1.DT=T2.DT
> ORDER BY T1.DT,T1.C
>
>
A parte che non so se sia possibile usare DT come elemento del group by
dipende dai dbms
cmq la seconda ottiene le occorrenze raggruppate per mese la prima le
occorrenze distinte raggruppate per mese e per frutto
mettendole insieme ottieni una ripetizione...
Credo tu voglia usare una funzione come la rollup e visto che usi mysql
(che versione?)
cmq
http://dev.mysql.com/doc/refman/5.0/en/group-by-modifiers.html
SELECT COUNT( frutto) AS C, # o COUNT( *) non è la stessa cosa!
DATE_FORMAT(data,'%Y %m') AS DT,
frutto
FROM frutta
GROUP BY DT, frutto
with rollup
Credo perché non ho mai usato mysql su queste cose ma dovrebbe
funzionare, controlla da che versione esiste
--
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