86 messaggi dal 22 agosto 2001
Ciao a tutti,
vorrei ottenere il calcolo di alcune percentuali usando una sola query. La cosa si risolverebbe se esistesse una funzione SQL che emulasse mysql_num_rows o mysql_affected_rows credo.
Vi faccio un esempio per essere più chiaro:

Table 'a'
Name, Surname, Nation
Na1,Su1,Na1
Na1,Su2,Na1
Na2,Su2,Na1
Na3,Su3,Na2

SELECT Nation, (COUNT(*)/AFFECTED_ROWS)*100 AS Percentuale
FROM 'a'
GROUP BY Nation
ORDER BY Percentuale DESC

Quello che vorrei ottenere è:

| Nation | Percentuale |
----------------------------
| Na1 | 75 |
| Na2 | 25 |
----------------------------

Grazie a tutti
Carlo

Rossetti Carlo
http://www.folklore.it


"Nulla è impossibile per colui che non deve farlo"
823 messaggi dal 05 agosto 2002
Forse una cosa tipo (ma non so' se MySQL supporta questa sintassi e comunque non l'ho testata ehehe):
select nation, (count(nation)/(select count(*) from a))*100 as percentuale from a group by nation

In oracle una cosa tipo:
select job, ((count(job)/(select count(*) from scott.emp))*100) as percentuale from scott.emp group by job
funziona

Stick to your guns.
Formazione su MySQL o Firebird? Contattami!
86 messaggi dal 22 agosto 2001
MITICO!!!

Ho installato la nuova versione di mysql 4.1.5.gamma
che supporta anche le subquery ed adesso funziona!
Avevo provato un approccio simile ma senza risultati, ora cone le nuove features di mysql va tutto.

Confermo che la sintassi che hai proposto è perfetta :D

GRAZIE 1000!!!

Carlo

Rossetti Carlo
http://www.folklore.it


"Nulla è impossibile per colui che non deve farlo"

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.