sql >> Databasteknik >  >> RDS >> Mysql

Hur man får de senaste 3 månadernas försäljningsdata i MySQL

Det är användbart att få tidigare 3 månaders försäljningsdata för att förstå försäljningstrender, göra rapportering och dataanalys. Så här får du de senaste 3 månadernas försäljningsdata i MySQL för ditt företag/webbplats. Vi kommer att titta på hur du väljer poster för de senaste 3 månaderna med INTERVAL-funktionen i MySQL.

Hur får du försäljningsdata från de senaste tre månaderna i MySQL

Här är stegen för att få de senaste 3 månadernas försäljningsdata i MySQL. Låt oss säga att du har följande tabell försäljning(orderdatum, belopp) som innehåller daglig försäljningsinformation.

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

Bonus Läs:Hur man får uppgifter om aktuell månad

Här är SQL-frågan för att få senaste 3 månaders försäljningsdata i MySQL, även känd som rullande 3 månaders försäljning. Vi använder INTERVAL()-funktionen för att få försäljningsdata för de senaste tre månaderna.

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

I ovanstående SQL-fråga ber vi MySQL att hämta försäljningsdata för alla datum där order_date är inom vårt specificerade INTERVAL, det vill säga de senaste 3 månaderna från NU.

Bonus Läs:Hur man skapar histogram i MySQL

Eftersom olika månader har olika antal dagar, när du nämner INTERVAL 3 månader , MySQL kommer att få data efter exakt samma dag i månaden, innan 3 månader. Det vill säga, om det är den 9 juni i dag kommer den att få försäljningsdata från den 9 mars.

Om du vill få försäljningsdata från de senaste 90 dagarna, är här SQL-frågan för att få försäljningsdata från de senaste 90 dagarna.

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

Bonus Läs:Hur man beräknar omvandlingsfrekvens i MySQL

Om du har flera rader för varje order_date, måste du sammanställa daglig försäljning när du får försäljningsdata från de senaste 3 månaderna. Till exempel, om du har försäljningstabell, som visas nedan

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

Här är frågan för att få de senaste 3 månadernas försäljningsdata, efter aggregering av daglig försäljning

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

Du kan plotta dessa försäljningsdata på ett linjediagram med hjälp av ett diagramverktyg som Ubiq.

Du kan också sammanställa denna försäljningsdata för varje månad med hjälp av följande fråga. Vi använder DATE_FORMAT för att få månadsnamn från datumvärden.

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

och rita det på ett stapeldiagram som visas nedan, skapat med Ubiq.

Det är allt! Förhoppningsvis kan du också få de senaste tre månadernas försäljningsdata i MySQL för ditt företag/webbplats/app och dela det med ditt team.

Om du vill skapa diagram, instrumentpaneler och rapporter från MySQL-databasen kan du prova Ubiq. Vi erbjuder en 14-dagars gratis provperiod.

  1. Det gick inte att hitta en ingångspunkt med namnet "InterlockedIncrement" i DLL:n "kernel32.dll" - [e-postskyddad] 64 bitar

  2. EXCEPT körs snabbare än en JOIN när tabellkolumnerna är desamma

  3. Fel i utvecklingen på Heroku

  4. Hur visar jag en bild från blob-kolumnen i Oracle med JasperReports?