Plutôt que de lire des données et effectuer la division en code PHP par exemple, si vous avez la possibilité, faites directement la division dans la requêtes SQL
Il y a plusieurs façons de le faire, soit avec un sous requêtes (mais il semble qu’il y ait des problèmes de performance), mais c’est le plus simple à mon avis, ou alors il faut utiliser des variables SQL locales.
Méthode avec une sous requête
Le principe est de calculer le dénominateur (par exemple) dans une sous requête, et de le mettre au dénominateur de la requête principale
# la sous requête SELECT count(*) FROM table1 WHERE type='toto' # la requête principale SELECT count(*) FROM table1 WHERE type='tata' #le tout SELECT count(*)/ (SELECT count(*) FROM table1 WHERE type='toto') FROM table1 WHERE type='tata'
Attention à la division par zéro (la question à se poser systématiquement quand on a une division, ce doit être un réflexe), on utilise NULLIF
SELECT count(*)/ NULLIF((SELECT count(*) FROM table1 WHERE type='toto'),0) FROM table1 WHERE type='tata'
Méthode avec des variables