Bevezetés a GROUP BY záradékba az SQL-ben
Azokban az esetekben, amikor a sorokat azonos értékkel kell csoportosítani, a Group By záradék kerül a képbe. A GROUP BY záradék egy parancs az SQL-ben, amely végrehajtja ezt a műveletet.
Fontos megjegyezni, hogy a GROUP BY záradékot a SELECT utasításban a WHERE záradék után a lekérdezésben használjuk.
Szintaxis
A csoportos záradék szintaxisa:
SELECT column_name1, column_name2, …
FROM table_name
WHERE conditions
GROUP By column_name1, column_name2, …
ORDER By column_name1, column_name2, …;
A szintaxis magyarázata
- SELECT utasítás - SQL parancs lekérdezés
- table_name - a hivatkozott adatbázis-tábla neve
- feltételek - hivatkoznak az ellenőrizendő feltételekre
- GROUP BY - kikötés az azonos sorok csoportosítására
- ORDER BY - mindig a Group By záradék után kerül felhasználásra a sorok növekvő vagy csökkenő sorrendben történő rendezésére. Ez egy opcionális feltétel.
Hogyan működik a GROUP BY Clause az SQL-ben?
Hogy megértsük a Group By záradék működését, vegyünk egy példát. Fontolja meg a munkavállaló névvel ellátott táblázatot, amely tartalmazza a munkavállaló alapvető adatait, mint például név, életkor, telefonszám, születési hely, nem, cím, e-mail azonosító stb.
Munkavállalói táblázat
név | kor | telefon | nem | |
János | 23 | 123 | Férfi | |
Lehet | 22 | 456 | Női | |
Ana | 45 | 644 | Női | |
lábasok | 57 | 3456 | Női | |
res | 45 | 456 | Női | |
Cser | 78 | 2456 | Férfi | |
Ran | 34 | 5899 | Férfi | |
Halvány | 55 | 7789 | Női | |
Tung | 32 | 5689 | Férfi | |
Chung | 21 | 4678 | Férfi |
Vegye figyelembe, hogy a MUNKAVÉGZŐ mintegy 10 pályázatot tartalmaz.
Először vegye be a táblázatból a „nem” különböző értékeit. Az a lekérdezés, amely segít elérni a célkitűzést, az lenne:
SELECT gender FROM EMPLOYEE;
Ez a következő értékeket fogja kapni:
nem |
Férfi |
Női |
Női |
Női |
Női |
Férfi |
Férfi |
Női |
Férfi |
Férfi |
A probléma itt az értékek redundanciája, azaz amint láthatjuk, a nemeknek csak két egyedi értéke van a táblázatban, de a kimenet nem csupán az egyedi értékeket adja meg, hanem az összes értéket, még akkor is, ha ismétlődőek.
Tehát annak érdekében, hogy csak az egyedi értékeket szerezzük a táblázatból, a következő lekérdezést fogjuk használni -
SELECT gender FROM EMPLOYEE GROUP BY gender;
A lekérdezés végrehajtása után kapott eredmény:
nem |
Férfi |
Női |
A Csoportosítással ugyanazokat az értékeket sorolja össze a sorokban, és csak egyetlen bejegyzést vagy egyetlen sort ad vissza nekik, mint ahogy a táblázatban a „Férfi” és a „Nő” sorokkal történt. Ez csak két egyedi értéket eredményezett, amelyek jelen voltak a „nem” oszlopban, azaz a. Nő és férfi.
Vegyünk egy újabb példát egy táblára, amely tartalmazza az osztály részleteit, amelyhez az egyes alkalmazottak társulnak. Ezt munkavállalói osztály osztálynak nevezzük.
Munkavállalói osztály táblázat
név | szenesláda | osztály |
János | hod1 | Szolgáltatás |
Lehet | hod2 | Pénzügy |
Ana | hod1 | Szolgáltatás |
lábasok | hod2 | Pénzügy |
res | hod3 | tech |
Cser | hod5 | Támogatás |
Ran | hod3 | Szolgáltatás |
Halvány | hod3 | tech |
Tung | hod3 | Pénzügy |
Chung | hod5 | HR |
Tehát most hajtsa végre az alábbi lekérdezést és keresse meg az eredményt -
SELECT hod, department FROM Employee_Department GROUP BY hod, department;
A lekérdezés végrehajtása a következő eredményt hozza -
szenesláda | osztály |
hod1 | Szolgáltatás |
hod2 | Pénzügy |
hod3 | tech |
hod5 | Támogatás |
hod3 | Szolgáltatás |
hod3 | Pénzügy |
hod5 | HR |
A GROUP BY záradék működik mind a házon, mind az osztályon, hogy megkeresse az egyedi sorokat a fent említett forgatókönyvben. Ellenőrzi a hod és az osztály kombinációját a hod és osztály egyéb bejegyzéseivel szemben, hogy meghatározzák annak egyediségét. Ha a hod azonos, de az osztály eltér, akkor ezt a sort egyedinek kell tekinteni. Ha a hod és az osztály egynél több sorban azonos, akkor a másodpéldányt nem hozza létre, és csak egy sor jelenik meg.
CSOPORTOS ZÁR műveletek
A Group By záradékot több csoportosítási és aggregációs funkcióval is használhatjuk. Vegyünk néhány példát a fenti két táblázat segítségével, azaz: EMPLOYEE és Employee_Department.
1. példa
A férfi és női alkalmazottak számának megszerzése a társaságban.
SELECT gender, COUNT(`name`) FROM EMPLOYEE GROUP BY gender;
A lekérdezés végrehajtása a következő eredményt hozza -
COUNT ( 'name') | nem |
5 | Férfi |
5 | Női |
2. példa
A részlegek számának megszerzése a társaságban a szám csökkenő sorrendjében.
SELECT department, COUNT(`name`) FROM Employee_Department GROUP BY department ORDER BY COUNT(name) DESC;
A lekérdezés végrehajtása a következő eredményt hozza -
COUNT ( 'name') | osztály |
3 | Szolgáltatás |
3 | Pénzügy |
2 | tech |
1 | Támogatás |
1 | HR |
3. példa
A különböző osztályok számának azonos elosztása a társaságban a szám csökkenő sorrendjében.
SELECT hod, department, COUNT(`name`) FROM Employee_Department GROUP BY hod, department ORDER BY COUNT(name) DESC;
A lekérdezés végrehajtása a következő eredményt hozza -
COUNT ( 'name') | szenesláda | osztály |
2 | hod1 | Szolgáltatás |
2 | hod2 | Pénzügy |
2 | hod3 | tech |
1 | hod5 | Támogatás |
1 | hod3 | Szolgáltatás |
1 | hod3 | Pénzügy |
1 | hod5 | HR |
A HAVING záradék az SQL-ben
A HAVING-záradék használata a Group By-záradékkal korlátozza a lekérdezés eredményét a sorokra, amelyek értékét a rendelkező rendelkezés említi.
Ennek megértése egy példával megkönnyíti -
4. példa
SELECT * FROM EMPLOYEE GROUP BY gender HAVING gender = “Female”;
A lekérdezés végrehajtása a következő eredményt hozza -
név | kor | telefon | nem | |
Lehet | 22 | 456 | Női | |
Ana | 45 | 644 | Női | |
lábasok | 57 | 3456 | Női | |
res | 45 | 456 | Női | |
Halvány | 55 | 7789 | Női |
5. példa
SELECT * FROM Employee_Department GROUP BY department HAVING department = “Finance”;
A lekérdezés végrehajtása a következő eredményt hozza -
név | szenesláda | osztály |
Lehet | hod2 | Pénzügy |
lábasok | hod2 | Pénzügy |
Tung | hod3 | Pénzügy |
Következtetés
A GROUP BY záradék és a SELECT utasítás használatával csoportosíthatjuk az azonos értékű sorokat az aggregált függvények, állandók és kifejezések felhasználásával.
Ajánlott cikkek
Ez egy útmutató az SQL GROUP BY záradékához. Itt tárgyaljuk, hogy a GROUP BY Clause hogyan működik az SQL-ben Példák és Munkavállalói táblázatok segítségével. Lehet, hogy megnézi a következő cikkeket is, ha többet szeretne megtudni -
- SQL beszúrási lekérdezés
- SQL nézetek
- Adatbázis SQL-ben
- Tranzakciók az SQL-ben