ö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
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