Maison > base de données > tutoriel mysql > Comment inclure tous les mois dans les moyennes mensuelles, même ceux avec des valeurs nulles ?

Comment inclure tous les mois dans les moyennes mensuelles, même ceux avec des valeurs nulles ?

DDD
Libérer: 2024-11-01 13:29:05
original
652 Les gens l'ont consulté

How to Include All Months in Monthly Averages, Even Those with Null Values?

Extraire tous les mois d'une plage de dates spécifiée, y compris ceux avec des valeurs nulles

Lors du calcul des moyennes mensuelles basées sur une plage de dates, il est Il est essentiel d'inclure les mois avec des valeurs nulles ou manquantes. Cela garantit que tous les mois de la période spécifiée sont pris en compte.

Pour y parvenir dans MySQL, une approche consiste à créer une table séparée contenant tous les mois possibles dans la plage donnée. Cette table, appelée « table de dates », peut être renseignée avec les dates, années et tout autre attribut pertinent.

À l'aide de la table de dates, vous pouvez effectuer une LEFT JOIN avec votre table de données d'origine. . L'opération LEFT JOIN garantit que toutes les lignes de la table de dates sont incluses dans le résultat, même s'il n'y a aucune ligne correspondante dans la table d'origine. Par conséquent, le résultat affichera tous les mois compris dans la plage spécifiée, qu'ils contiennent ou non des données.

Voici un exemple de requête qui illustre cette approche :

<code class="sql">SELECT 
    `DT`.`myYear`, 
    `DT`.`myMonth`, 
    AVG(`myTable`.`value1`) AS `avg_value_1`, 
    AVG(`myTable`.`value2`) AS `avg_value_2`
FROM 
    `dateTable` AS `DT`
LEFT JOIN 
    `myTable` 
ON 
    `dateTable`.`myDate` = `myTable`.`save_date`
WHERE 
    `dateTable`.`myDate` BETWEEN '2009-01-01' AND '2009-07-01'
GROUP BY 
    `DT`.`myYear`, `DT`.`myMonth`</code>
Copier après la connexion

Cette requête renverra tous les mois de janvier à juillet 2009, y compris ceux sans données dans le tableau original. La fonction AVG() gérera l'agrégation des valeurs des mois avec des données, tandis que l'opération LEFT JOIN garantit que les mois avec des valeurs nulles se voient attribuer des moyennes nulles.

En utilisant une table de dates et en effectuant une LEFT JOIN, vous peut extraire efficacement tous les mois d'une plage de dates donnée, indépendamment de la présence ou de l'absence de données, permettant une analyse complète des moyennes mensuelles.

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal