Maison >base de données >tutoriel mysql >Comment puis-je combiner plusieurs instructions SELECT pour analyser l'achèvement et le retard des tâches ?
Analyse efficace des données : combinaison de plusieurs instructions SELECT
Les requêtes de base de données nécessitent souvent de combiner des données provenant de plusieurs sources ou d'appliquer plusieurs transformations. La jonction des résultats de plusieurs SELECT
déclarations offre un moyen puissant de manipuler des données et d'obtenir des informations précieuses.
Considérons une base de données de tâches où chaque enregistrement représente une tâche, y compris une date limite (PALT) et l'âge de la tâche (jours depuis le début). Une tâche est en retard si son âge dépasse son PALT. Notre objectif est de générer un tableau récapitulatif montrant le nombre total de tâches de chaque personne et le nombre de tâches en retard.
Ceci peut être réalisé en utilisant deux SELECT
déclarations distinctes :
<code class="language-sql">SELECT ks, COUNT(*) AS '# Tasks' FROM Table GROUP BY ks;</code>
Cette requête compte le total des tâches pour chaque personne (identifiée par ks
).
<code class="language-sql">SELECT ks, COUNT(*) AS '# Late' FROM Table WHERE Age > Palt GROUP BY ks;</code>
Cette requête compte le nombre de tâches en retard pour chaque personne.
Pour les combiner, nous utilisons un LEFT JOIN
:
<code class="language-sql">SELECT t1.ks, t1.'# Tasks', COALESCE(t2.'# Late', 0) AS '# Late' FROM (SELECT ks, COUNT(*) AS '# Tasks' FROM Table GROUP BY ks) t1 LEFT JOIN (SELECT ks, COUNT(*) AS '# Late' FROM Table WHERE Age > Palt GROUP BY ks) t2 ON t1.ks = t2.ks;</code>
Cela rejoint les résultats basés sur la colonne ks
. COALESCE
gère les cas où une personne n'a pas de tâches en retard, en remplaçant NULL
par 0.
Le tableau final montre ks
(ID de la personne), # Tasks
(tâches totales) et # Late
(nombre de tâches en retard, ou 0 si aucune). Cela permet une analyse approfondie des charges de travail individuelles et du pourcentage de tâches en retard.
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!