Maison > base de données > tutoriel mysql > Comment agréger efficacement plusieurs colonnes de différentes tables dans une seule instruction MySQL ?

Comment agréger efficacement plusieurs colonnes de différentes tables dans une seule instruction MySQL ?

Susan Sarandon
Libérer: 2025-01-21 11:12:10
original
646 Les gens l'ont consulté

How to Efficiently Aggregate Multiple Columns from Different Tables in a Single MySQL Statement?

Consolidation des données de plusieurs tables avec une seule requête MySQL

Au départ, l'utilisation de plusieurs sous-requêtes pour agréger les données de diverses tables donnait des résultats inexacts, seule la première colonne affichant les valeurs correctes. Pour résoudre ce problème, une méthode plus efficace est nécessaire.

La solution la plus efficace implique l'agrégation conditionnelle au sein d'une seule requête de table. Cette approche évite les limitations de plusieurs sous-requêtes et produit des résultats précis. La requête suivante illustre cette technique :

SELECT DAY_IN, COUNT(*) AS arr,
       SUM(IF(PAT_STATUS LIKE '%ong%', 1, 0)) AS ONG1,
       SUM(IF(PAT_STATUS LIKE '%rtde%', 1, 0)) AS RTED,
       SUM(IF(PAT_STATUS LIKE '%pol%', 1, 0)) AS POL1,
       SUM(IF(PAT_STATUS LIKE '%para%', 1, 0)) AS para
FROM t_hospital
WHERE DAY_IN BETWEEN @start_check AND @finish_check
  AND RES_DATE BETWEEN @start_res AND @finish_res
  AND ID_daily_hos = @daily_hos
GROUP BY DAY_IN
Copier après la connexion

Cette requête utilise la fonction IF() pour compter conditionnellement les occurrences en fonction de la colonne PAT_STATUS. Chaque ligne n'est comptée qu'une seule fois, contribuant à une seule colonne agrégée. La fonction SUM() totalise ensuite ces décomptes conditionnels pour chaque DAY_IN.

Cette approche à requête unique fournit une méthode concise et précise pour agréger les données de différentes colonnes au sein de la même table, résolvant ainsi le problème des résultats inexacts obtenus à partir de la méthode de sous-requête multiple d'origine.

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