MySQL GROUP BY (Čeština)

Shrnutí: v tomto tutoriálu, se dozvíte, jak používat MySQL GROUP BY řádky skupiny do podskupin na základě hodnoty sloupce nebo výrazy.

Úvod do MySQL GROUP BY klauzule

GROUP BY klauzule skupiny sada řádků do souboru souhrnných řádků podle hodnot sloupce nebo výrazy. Klauzule GROUP BY vrací jeden řádek pro každou skupinu. Jinými slovy, snižuje počet řádků v sadě výsledků.,

Budete často používat GROUP BY klauzule s agregačních funkcí, jako například SUM AVG MAX MIN COUNT. Souhrnná funkce, která se objeví v klauzuli SELECT, poskytuje informace o každé skupině.

klauzule GROUP BY je volitelnou doložkouSELECT., Následující ilustruje GROUP BY klauzule syntaxe:

GROUP BY doložka musí se objeví po FROM WHERE klauzule. Následující GROUP BY klíčová slova je seznam čárkou oddělených sloupce nebo výrazy, které chcete použít jako kritéria k seskupení řádků.,

MySQL evaluates the GROUP BY clause after the FROM, WHERE and SELECT clauses and before the HAVING , ORDER BY and LIMIT clauses:

MySQL GROUP BY examples

Let’s take some example of using the GROUP BY clause.,

a) Simple MySQL GROUP by example

pojďme se podívat na tabulkuorders ve vzorové databázi.,

Předpokládejme, že chcete seskupit hodnoty objednávky je stav, do podskupin, můžete použít GROUP BY klauzule s status sloupce jako následující dotaz:

Code language: SQL (Structured Query Language) (sql)

Vyzkoušet

Jak můžete vidět, GROUP BY klauzule vrátí unikátní výskyty status hodnoty., To funguje podobně jako DISTINCT operátor, jak je znázorněno v následujícím dotazu:

Code language: SQL (Structured Query Language) (sql)

Vyzkoušet

B) Pomocí MySQL SKUPINY s agregační funkce

agregační funkce umožňují provádět výpočet sada řádků a vrátí jednu hodnotu. Klauzule GROUP BY se často používá se souhrnnou funkcí k provedení výpočtu a vrácení jediné hodnoty pro každou podskupinu.,

například, pokud chcete znát počet objednávek v každém stavu, můžete použít COUNT s funkcí GROUP BY klauzule takto:

Code language: SQL (Structured Query Language) (sql)

Vyzkoušet

Viz následující orders orderdetails tabulka.,

získat celkové množství všech objednávek podle stavu, připojíte orders tabulka orderdetails tabulky a pomocí SUM funkce pro výpočet celkové částky. Viz následující dotaz:

Code language: SQL (Structured Query Language) (sql)

Vyzkoušet

Podobně, následující dotaz vrátí pořadí čísla a celkovou částku z každé objednávky.,

Code language: SQL (Structured Query Language) (sql)

Vyzkoušet

C) MySQL GROUP BY, s výraz příklad:

kromě sloupce, skupiny řádků a výrazy. Následující dotaz získá celkový prodej za každý rok.

Vyzkoušet

V tomto příkladu jsme použili YEAR funkce extrahujte rok údaje z objednávky, datum objednávky ( orderDate)., Do celkového prodeje jsme zahrnuli pouze objednávky se stavem shipped. Všimněte si, že výraz, který se objeví v klauzuli SELECT, musí být stejný jako výraz v klauzuli GROUP BY.

D)pomocí MySQL GROUP pomocí klauzule example

pro filtrování skupin vrácenýchGROUP BY klauzule, používáteHAVING klauzule. Následující dotaz používá klauzuli HAVING pro výběr celkového prodeje let po roce 2003.,

Code language: SQL (Structured Query Language) (sql)

Vyzkoušet

GROUP BY klauzule: MySQL vs. standardní SQL

Standardní SQL neumožňuje použít alias v GROUP BY bodě, nicméně, MySQL podporuje.

například následující dotaz extrahuje rok od data objednávky. To první využívá year jako alias výrazu YEAR(orderDate) a pak používá year alias GROUP BY klauzule., Tento dotaz není platný ve standardním SQL.

Vyzkoušet

MySQL také umožňuje třídit skupin ve vzestupném nebo sestupném rozkazy, zatímco standardní SQL není. Výchozí pořadí je vzestupné., Například, pokud chcete získat počet objednávek podle stavu a druhu stav v sestupném pořadí, můžete použít GROUP BY klauzule s DESC jako následující dotaz:

Code language: SQL (Structured Query Language) (sql)

Vyzkoušet

Všimněte si, že jsme použili DESC GROUP BY klauzule řadit status v sestupném pořadí., Mohli bychom také explicitně zadatASC v klauzuliGROUP BY třídit skupiny podle stavu ve vzestupném pořadí.

V tomto návodu jsme vám ukázali, jak používat MySQL GROUP BY klauzule řádky skupiny do podskupin na základě hodnoty sloupce nebo výrazy.

  • byl tento tutoriál užitečný?
  • YesNo

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Přejít k navigační liště