Maison >base de données >tutoriel mysql >Comment puis-je obtenir efficacement plusieurs décomptes à partir d'une seule requête SQL ?
Optimisez la conception des requêtes : utilisez une seule instruction SQL pour obtenir plusieurs décomptes
Dans l'analyse des données, il est souvent nécessaire d'obtenir plusieurs décomptes pour différentes conditions dans le tableau. Même si une simple requête peut renvoyer un seul décompte, obtenir plusieurs décomptes dans une seule requête nécessite une approche plus nuancée.
Structure de la requête :
Pour cela, nous pouvons utiliser l'instruction CASE combinée avec des fonctions d'agrégation. Cette méthode simule la fonctionnalité de la fonction PIVOT dans certains systèmes de bases de données. La requête générée prend la forme :
<code class="language-sql">SELECT distributor_id, COUNT(*) AS total, SUM(CASE WHEN level = 'exec' THEN 1 ELSE 0 END) AS ExecCount, SUM(CASE WHEN level = 'personal' THEN 1 ELSE 0 END) AS PersonalCount FROM yourtable GROUP BY distributor_id</code>
Instructions :
COUNT(*)
compte le nombre total de lignes pour chaque distributor_id
. level
. Si level
est « exec », alors ExecCount
est incrémenté ; si level
est « personnel », alors PersonalCount
est incrémenté. GROUP BY
regroupe les résultats par distributor_id
, garantissant un décompte unique pour chaque distributeur. Avantages de cette méthode :
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!