Calcul du pourcentage à partir de SUM() dans une requête PostgreSQL
Comprendre la requête
Le La requête fournie vise à calculer le pourcentage de lignes où value_a et value_b dans la table my_obj sont égales. Cependant, il rencontre une erreur car la colonne nb_ok, qui est référencée dans la procédure stockée computation_percent, n'existe pas.
Solution optimisée
Pour résoudre ce problème, considérez un plus efficace approche :
SELECT property_name, (COUNT(value_a = value_b OR NULL) * 100) / COUNT(*) AS pct FROM my_obj GROUP BY property_name;
Explication
Cette requête :
Inclure les chiffres fractionnaires
Pour conserver les chiffres fractionnaires dans le résultat, utilisez la requête modifiée suivante :
SELECT property_name, ROUND((COUNT(value_a = value_b OR NULL) * 100.0) / COUNT(*), 2) AS pct FROM my_obj GROUP BY property_name;
Ceci la version utilise ROUND(...) pour arrondir le pourcentage à deux décimales.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!