sql >> Databáze >  >> RDS >> Mysql

Jak seskupit podle měsíce v MySQL

Někdy může být potřeba agregovat data podle měsíce v MySQL. V tomto článku se podíváme na různé způsoby seskupování podle měsíce v MySQL.


Jak seskupit podle měsíce v MySQL

Použijeme formát_data funkce pro formátování data na hodnoty měsíce a seskupení podle měsíce.

Zde je syntaxe funkce date_format.

date_format(hodnota, formátovací řetězec)

Ve výše uvedené funkci musíte zadat hodnotu jako literál, jinou funkci nebo název sloupce a formátovací řetězec, který určuje formát, do kterého je třeba tuto hodnotu převést.

Zde je příklad převodu datového řetězce na měsíc.

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

Řekněme, že máte tabulku prodej(id, datum_objednávky, částka)

mysql> vytvořit tabulku prodej(id int, datum_objednávky datum, částka int);mysql> vložit do 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> vyberte * z prodeje;+------+------------+------ --+| id | datum_objednávky | množství |+------+------------+--------+| 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 |+------+------------+--------+

Přečtěte si také:Jak odstranit omezení NOT NULL v MySQL


Seskupit podle názvu měsíce

Zde je dotaz SQL pro seskupení podle názvu měsíce.

mysql> vyberte datum_formátu(datum_objednávky, '%M'),sum(částka) z prodejní skupiny podle date_format(datum_objednávky, '%M');+--------------- ----------------+-------------+| date_format(datum_objednávky, '%M') | suma(částka) |+-------------------------------+------------- -+| prosinec | 600 || listopad | 400 || října | 250 |+-------------------------------+-------------+ 

Ve výše uvedeném SQL dotazu používáme date_format(order_date, “%M”) převést sloupec data na název měsíce a použít součet sloupec pro sečtení částek prodeje.


Seskupit podle měsíce a roku

Zde je dotaz SQL pro seskupení podle měsíce a roku.

mysql> vyberte datum_formátu(datum_objednávky, '%M %Y'),součet(částka) z prodejní skupiny podle roku(datum_objednávky),měsíc(datum_objednávky);+------------- ---------------------+-------------+| date_format(datum_objednávky, '%M %Y') | suma(částka) |+----------------------------------+--------- ----+| říjen 2020 | 250 || listopad 2020 | 400 || prosinec 2020 | 600 |+----------------------------------+------------ -+

Ve výše uvedeném dotazu používáme date_format k převodu hodnot sloupce data na názvy měsíců a roků. Také používáme funkce YEAR() a MONTH(), abychom zajistili, že data budou seskupena a seřazena podle čísel měsíců a let.

Pokud ve výše uvedeném dotazu použijeme formát_data funkce ve skupině po klauzuli, pak MySQL seřadí skupiny podle abecedy, nikoli chronologicky. Viz níže.

mysql> vyberte datum_formátu(datum_objednávky, '%M'),sum(částka) z prodejní skupiny podle date_format(datum_objednávky, '%M');+--------------- ----------------+-------------+| date_format(datum_objednávky, '%M') | suma(částka) |+-------------------------------+------------- -+| prosinec | 600 || listopad | 400 || října | 250 |+-------------------------------+-------------+ 

Potřebujete nástroj pro vytváření sestav pro MySQL? Ubiq usnadňuje vizualizaci dat během několika minut a sledování na řídicích panelech v reálném čase. Vyzkoušejte to ještě dnes!

  1. Jednoduchá uvozovka, dvojitá uvozovka a zpětné zaškrtnutí v dotazech MySQL

  2. Výkon TPC-H od PostgreSQL 8.3

  3. 4 způsoby, jak získat historii úloh SQL Server

  4. LPAD v SQL Server 2008