Maison > base de données > tutoriel mysql > le corps du texte

Comment extraire tous les mois d'une plage de dates, y compris les valeurs nulles dans MySQL ?

Mary-Kate Olsen
Libérer: 2024-11-03 19:42:29
original
364 Les gens l'ont consulté

How to Extract All Months within a Date Range, Including Zero Values in MySQL?

Extraire tous les mois dans une plage de dates, y compris les valeurs nulles

Dans MySQL, il est possible d'extraire des valeurs moyennes par mois dans une date spécifiée plage, même si certains mois ont des valeurs nulles. Cette fonctionnalité est cruciale pour garantir que tous les mois sont comptabilisés et affichés avec précision.

Pour y parvenir, une approche consiste à créer un « dateTable » contenant tous les mois possibles dans la plage requise. Cette table peut être remplie avec des colonnes telles que "Date", "Mois", "Année" et autres.

Par la suite, la requête d'origine peut être modifiée pour effectuer un LEFT JOIN avec le "dateTable" sur un colonne de date correspondante. Cela garantit que tous les mois de la plage de dates spécifiée sont récupérés, qu'il existe ou non des entrées correspondantes dans la table principale. La requête ressemblerait à ce qui suit :

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

Cette modification permet des rapports flexibles basés sur toutes les colonnes incluses dans "dateTable". Par exemple, le regroupement par « Trimestre financier » ou « Jour de la semaine » peut être obtenu en ajustant la clause « GROUP BY » en conséquence.

En utilisant un LEFT JOIN et un « dateTable » complet, cette approche récupère efficacement tous les mois dans une plage de dates donnée, garantissant que même ceux avec des valeurs nulles sont inclus dans la sortie.

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
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