Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment obtenir les données de vente des 3 derniers mois dans MySQL

Il est utile d'obtenir les données de ventes des 3 mois précédents pour comprendre les tendances des ventes, faire des rapports et des analyses de données. Voici comment obtenir les données de ventes des 3 derniers mois dans MySQL pour votre entreprise/site Web. Nous verrons comment sélectionner les enregistrements des 3 derniers mois à l'aide de la fonction INTERVAL de MySQL.

Comment obtenir les données de ventes des 3 derniers mois dans MySQL

Voici les étapes pour obtenir les données de ventes des 3 derniers mois dans MySQL. Supposons que vous ayez le tableau suivant ventes(date_commande, montant) qui contient des informations sur les ventes quotidiennes.

mysql> select order_date,sale from sales;

(showing only last few records)
+------------+------+
| order_date | sale |
+------------+------+
| 2020-01-28 |  230 |
|        ... |  ... |
| 2020-05-29 |  300 |
| 2020-05-30 |  250 |
| 2020-05-31 |  250 |
| 2020-06-01 |  250 |
| 2020-06-02 |  150 |
| 2020-06-03 |  300 |
| 2020-06-04 |  200 |
| 2020-06-05 |  200 |
| 2020-06-06 |  250 |
| 2020-06-07 |  150 |
| 2020-06-08 |  300 |
| 2020-06-09 |  200 |
+------------+------+

Lecture bonus :comment obtenir les enregistrements du mois en cours

Voici la requête SQL pour obtenir les données de ventes des 3 derniers mois dans MySQL, également appelées ventes glissantes sur 3 mois. Nous utilisons la fonction INTERVAL() pour obtenir les données de ventes des 3 derniers mois.

mysql>select order_date,sale from sales
where order_date > now() - INTERVAL 3 MONTH;

(showing only last few records)
+------------+------+
| order_date | sale |
+------------+------+
| 2020-02-09 |  230 |
|        ... |  ... |
| 2020-05-29 |  300 |
| 2020-05-30 |  250 |
| 2020-05-31 |  250 |
| 2020-06-01 |  250 |
| 2020-06-02 |  150 |
| 2020-06-03 |  300 |
| 2020-06-04 |  200 |
| 2020-06-05 |  200 |
| 2020-06-06 |  250 |
| 2020-06-07 |  150 |
| 2020-06-08 |  300 |
| 2020-06-09 |  200 |
+------------+------+

Dans la requête SQL ci-dessus, nous disons à MySQL d'obtenir les données de ventes pour toutes les dates où order_date se situe dans notre INTERVALLE spécifié, c'est-à-dire au cours des 3 derniers mois à partir de MAINTENANT.

Lecture bonus :comment créer un histogramme dans MySQL

Étant donné que différents mois ont un nombre de jours différent, lorsque vous mentionnez INTERVAL 3 mois , MySQL obtiendra des données exactement le même jour du mois, avant 3 mois. Autrement dit, si aujourd'hui est le 9 juin, il obtiendra les données de vente du 9 mars.

Si vous souhaitez obtenir les données de vente des 90 derniers jours, voici la requête SQL pour obtenir les données de vente des 90 derniers jours.

mysql>select order_date,sale from sales
where order_date > now() - INTERVAL 90 DAY;

(showing only last few records)
+------------+------+
| order_date | sale |
+------------+------+
| 2020-03-11 |  230 |
|        ... |  ... |
| 2020-05-29 |  300 |
| 2020-05-30 |  250 |
| 2020-05-31 |  250 |
| 2020-06-01 |  250 |
| 2020-06-02 |  150 |
| 2020-06-03 |  300 |
| 2020-06-04 |  200 |
| 2020-06-05 |  200 |
| 2020-06-06 |  250 |
| 2020-06-07 |  150 |
| 2020-06-08 |  300 |
| 2020-06-09 |  200 |
+------------+------+

Lecture bonus :Comment calculer le taux de conversion dans MySQL

Si vous avez plusieurs lignes pour chaque order_date, vous devrez agréger les ventes quotidiennes lorsque vous obtenez les données de ventes des 3 derniers mois. Par exemple, si vous avez un tableau des ventes, comme indiqué ci-dessous

mysql> select order_date,sale from sales;

(showing only last few records)
+---------------------+------+
| order_date          | sale |
+---------------------+------+
| 2020-01-28 09:30:35 |  23  |
| 2020-01-28 10:10:00 |  30  |
| 2020-01-28 11:00:15 |  20  |
| 2020-01-28 14:50:35 |  15  |
| 2020-01-28 15:30:36 |  25  |
| 2020-01-28 17:10:55 |  15  |
|                 ... |  ... |
+---------------------+------+

Ensuite, voici la requête pour obtenir les données de ventes des 3 derniers mois, après avoir agrégé les ventes quotidiennes

mysql>select date(order_date),sale from sales
      where order_date > now() - INTERVAL 3 MONTH
      group by date(order_date);

(showing only last few records)
+------------+------+
| order_date | sale |
+------------+------+
| 2020-03-09 |  230 |
|        ... |  ... |
| 2020-05-29 |  300 |
| 2020-05-30 |  250 |
| 2020-05-31 |  250 |
| 2020-06-01 |  250 |
| 2020-06-02 |  150 |
| 2020-06-03 |  300 |
| 2020-06-04 |  200 |
| 2020-06-05 |  200 |
| 2020-06-06 |  250 |
| 2020-06-07 |  150 |
| 2020-06-08 |  300 |
| 2020-06-09 |  200 |
+------------+------+

Vous pouvez tracer ces données de vente sur un graphique linéaire à l'aide d'un outil graphique tel qu'Ubiq.

Vous pouvez également agréger ces données de ventes pour chaque mois à l'aide de la requête suivante. Nous utilisons DATE_FORMAT pour obtenir les noms de mois à partir des valeurs de date.

mysql>select date_format(order_date,'%b'),sale from sales
      where order_date > now() - INTERVAL 3 MONTH
      group by date_format(order_date,'%b');


+------------+-------+
| order_date |  sale |
+------------+-------+
| Mar        |   830 |
| Apr        | 10300 |
| May        | 12250 |
| Jun        |  1250 |
+------------+-------+

et tracez-le sur un graphique à barres comme indiqué ci-dessous, créé à l'aide d'Ubiq.

C'est ça! J'espère que vous pourrez vous aussi obtenir les données de ventes des 3 derniers mois dans MySQL pour votre entreprise/site Web/application et les partager avec votre équipe.

Si vous souhaitez créer des graphiques, des tableaux de bord et des rapports à partir de la base de données MySQL, vous pouvez essayer Ubiq. Nous offrons un essai gratuit de 14 jours.