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