Maison > Article > base de données > Comment inclure tous les mois dans les moyennes mensuelles, même ceux avec des valeurs nulles ?
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>
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!