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 ?

Comment puis-je combiner plusieurs instructions SELECT pour analyser l'achèvement et le retard des tâches ?

Linda Hamilton
Libérer: 2025-01-08 22:41:43
original
368 Les gens l'ont consulté

How Can I Combine Multiple SELECT Statements to Analyze Task Completion and Lateness?

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 :

SELECT ks, COUNT(*) AS '# Tasks' FROM Table GROUP BY ks;
Copier après la connexion

Cette requête compte le total des tâches pour chaque personne (identifiée par ks).

SELECT ks, COUNT(*) AS '# Late' FROM Table WHERE Age > Palt GROUP BY ks;
Copier après la connexion

Cette requête compte le nombre de tâches en retard pour chaque personne.

Pour les combiner, nous utilisons un LEFT JOIN :

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;
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal