MySQL csoport

összefoglaló: ebben a bemutatóban megtudhatja, hogyan kell használni a MySQL GROUP BY csoport sorokat alcsoportokba az oszlopok vagy kifejezések értékei alapján.

Bevezetés a MySQL csoportba

a GROUP BY záradék egy sor Sort csoportosít az összefoglaló sorokba oszlopok vagy kifejezések értékei szerint. AGROUP BY záradék minden csoporthoz egy sort ad vissza. Más szavakkal, csökkenti a sorok számát az eredménykészletben.,

gyakran használja a GROUP BY záradékot olyan aggregált funkciókkal, mint a SUM, AVG, MAX, MIN és COUNT. A SELECT pontban megjelenő aggregált függvény minden csoportról információt nyújt.

a GROUP BY záradék aSELECT nyilatkozat opcionális záradéka., A GROUP BY záradék szintaxisa:

a GROUP BY záradéknak a FROM és WHERE záradék után kell megjelennie. AGROUP BY kulcsszavak a vesszővel elválasztott oszlopok vagy kifejezések listája, amelyeket kritériumként szeretne használni a sorok csoportosításához.,

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) egyszerű MySQL csoport példával

vessünk egy pillantást aorders táblára a mintaadatbázisban.,

Gondolom azt szeretné, hogy a csoport értékeit, a rendelés állapota a alcsoportok, használja a GROUP BY záradék a status oszlop, mint a következő lekérdezést:

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

Próbálja Ki

Mint látható, a GROUP BY záradék visszatér egyedi esetben a status értékeket., Úgy működik, mint a DISTINCT operátor, amint az a következő lekérdezésben látható:

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

próbálja ki

B) a MySQL csoport használatával összesített funkciókkal

az aggregált funkciók lehetővé teszik egy sor kiszámítását, és egyetlen értéket adnak vissza. AGROUP BY záradékot gyakran használják aggregált funkcióval a számítás elvégzéséhez, és az egyes alcsoportok egyetlen értékének visszaadásához.,

például, ha szeretné tudni a megrendelések számát az egyes állapotokban, használhatja a COUNT függvényt a GROUP BY záradékkal az alábbiak szerint:

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

próbálja ki

lásd a következő orders és orderdetails táblázatot.,

ahhoz, hogy az összes megrendelés teljes összegét státusz szerint megkapja, csatlakozik a orders táblához a orderdetails táblázat és használja a SUM függvényt a teljes összeg kiszámításához. Lásd a következő lekérdezést:

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

próbálja ki

Hasonlóképpen, a következő lekérdezés a rendelési számokat és a teljes összeget adja vissza minden sorrendben.,

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

próbálja ki

C) MySQL csoport kifejezés példával

az oszlopok mellett sorokat is csoportosíthat kifejezésekkel. A következő lekérdezés minden évben megkapja a teljes értékesítést.

próbálja ki

ebben a példában a YEAR függvényt használtuk az éves adatok kivonására a megrendelés dátumából ( orderDate)., Csak a shipped állapotú megrendeléseket vettük fel a teljes értékesítésben. Vegye figyelembe, hogy a SELECT záradékban megjelenő kifejezésnek meg kell egyeznie a GROUP BY záradékban szereplő kifejezéssel.

D) A MySQL csoport használatával a

záradék példájával a GROUP BY záradék által visszaküldött csoportok szűréséhez a HAVING záradékot használja. A következő lekérdezés a HAVING záradékot használja a 2003 utáni évek teljes értékesítésének kiválasztásához.,

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

próbálja ki

A csoport záradéka: MySQL vs.standard

standard SQL nem teszi lehetővé az alias használatát a GROUP BY záradékban, azonban a MySQL támogatja ezt.

például a következő lekérdezés kivonja az évet a megrendelés dátumától. Először ayear kifejezést használja aYEAR(orderDate) kifejezés álneveként, majd ayear álnevet használja aGROUP BY záradékban., Ez a lekérdezés nem érvényes a standard SQL-ben.

próbálja ki

a MySQL lehetővé teszi a csoportok növekvő vagy csökkenő sorrendben történő rendezését, míg a standard SQL nem. Az alapértelmezett sorrend növekvő., Ha például a rendelések számát állapot szerint szeretné megadni, és az állapotot csökkenő sorrendben szeretné rendezni, akkor a GROUP BY DESC záradékot használhatja a következő lekérdezésként:

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

próbálja ki

DESC a GROUP BY záradék a status csökkenő sorrendben., A ASC – ban is megadhatjuk a GROUP BY záradékot, hogy a csoportokat állapot szerint rendezzük növekvő sorrendben.

ebben a bemutatóban megmutattuk, hogyan kell használni a MySQL GROUP BY záradékot a sorok alcsoportokba csoportosításához oszlopok vagy kifejezések értékei alapján.

  • hasznos volt ez a bemutató?
  • YesNo

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

Tovább az eszköztárra