Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak grupować według miesięcy w MySQL

Czasami może być konieczne agregowanie danych według miesiąca w MySQL. W tym artykule przyjrzymy się różnym sposobom grupowania według miesiąca w MySQL.


Jak grupować według miesięcy w MySQL

Użyjemy date_format funkcja formatowania daty na wartości miesiąca i grupowania według miesiąca.

Oto składnia funkcji date_format.

date_format(value, format string)

W powyższej funkcji musisz określić wartość jako literał, nazwę innej funkcji lub kolumny oraz ciąg formatujący, który określa format, na jaki ta wartość ma zostać przekonwertowana.

Oto przykład konwersji ciągu daty na miesiąc.

mysql> SELECT DATE_FORMAT("2020-06-15", "%M");
+---------------------------------+
| DATE_FORMAT("2020-06-15", "%M") |
+---------------------------------+
| June                            |
+---------------------------------+

Załóżmy, że masz tabelę sprzedaż(id, data_zamówienia, kwota)

mysql> create table sales(id int, order_date date, amount int);


mysql> insert into sales(id,order_date,amount)
     values(1,'2020-10-01',150),
     (2,'2020-10-10',100),
     (3,'2020-11-05',250),
     (4,'2020-11-15',150),
     (5,'2020-12-01',350),
     (6,'2020-12-21',250);

mysql> select * from sales;
+------+------------+--------+
| id   | order_date | amount |
+------+------------+--------+
|    1 | 2020-10-01 |    150 |
|    2 | 2020-10-10 |    100 |
|    3 | 2020-11-05 |    250 |
|    4 | 2020-11-15 |    150 |
|    5 | 2020-12-01 |    350 |
|    6 | 2020-12-21 |    250 |
+------+------------+--------+

Przeczytaj także:Jak usunąć ograniczenie NOT NULL w MySQL


Grupuj według nazwy miesiąca

Oto zapytanie SQL do grupowania według nazwy miesiąca.

mysql> select date_format(order_date, '%M'),sum(amount)
       from sales
       group by date_format(order_date, '%M');
+-------------------------------+-------------+
| date_format(order_date, '%M') | sum(amount) |
+-------------------------------+-------------+
| December                      |         600 |
| November                      |         400 |
| October                       |         250 |
+-------------------------------+-------------+

W powyższym zapytaniu SQL używamy date_format(order_date, „%M”) przekonwertować kolumnę daty na nazwę miesiąca i użyć sum kolumna, aby zsumować kwoty sprzedaży.


Grupuj według miesiąca i roku

Oto zapytanie SQL do grupowania według miesiąca i roku.

mysql> select date_format(order_date, '%M %Y'),sum(amount)
       from sales
       group by year(order_date),month(order_date);
+----------------------------------+-------------+
| date_format(order_date, '%M %Y') | sum(amount) |
+----------------------------------+-------------+
| October 2020                     |         250 |
| November 2020                    |         400 |
| December 2020                    |         600 |
+----------------------------------+-------------+

W powyższym zapytaniu używamy date_format do konwersji wartości kolumny daty na nazwy miesięcy i lat. Używamy również funkcji YEAR() i MONTH(), aby upewnić się, że dane są pogrupowane i uporządkowane według numerów miesięcy i lat.

W powyższym zapytaniu, jeśli używamy date_format funkcji w klauzuli group by, wtedy MySQL posortuje grupy alfabetycznie, a nie chronologicznie. Zobacz poniżej.

mysql> select date_format(order_date, '%M'),sum(amount)
       from sales
       group by date_format(order_date, '%M');
+-------------------------------+-------------+
| date_format(order_date, '%M') | sum(amount) |
+-------------------------------+-------------+
| December                      |         600 |
| November                      |         400 |
| October                       |         250 |
+-------------------------------+-------------+

Potrzebujesz narzędzia do raportowania dla MySQL? Ubiq ułatwia wizualizację danych w ciągu kilku minut i monitorowanie w pulpitach nawigacyjnych w czasie rzeczywistym. Wypróbuj już dziś!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Python łączy się z bazą danych MySQL za pomocą złącza MySQL i przykładu PyMySQL

  2. W zapytaniach MySQL, po co używać join zamiast gdzie?

  3. Wybierz wiersz z najnowszą datą na użytkownika

  4. Użyj relacyjnych baz danych MySQL w Fedorze 13

  5. Zmień format daty (w bazie danych lub danych wyjściowych) na dd/mm/rrrr - PHP MySQL