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

  1. SELECT utasítás - SQL parancs lekérdezés
  2. table_name - a hivatkozott adatbázis-tábla neve
  3. feltételek - hivatkoznak az ellenőrizendő feltételekre
  4. GROUP BY - kikötés az azonos sorok csoportosítására
  5. 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évkortelefonnememail
János23123Férfi
Lehet22456Női
Ana45644Női
lábasok573456Női
res45456Női
Cser782456Férfi
Ran345899Férfi
Halvány557789Női
Tung325689Férfi
Chung214678Fé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évszenesládaosztály
Jánoshod1Szolgáltatás
Lehethod2Pénzügy
Anahod1Szolgáltatás
lábasokhod2Pénzügy
reshod3tech
Cserhod5Támogatás
Ranhod3Szolgáltatás
Halványhod3tech
Tunghod3Pénzügy
Chunghod5HR

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ádaosztály
hod1Szolgáltatás
hod2Pénzügy
hod3tech
hod5Támogatás
hod3Szolgáltatás
hod3Pénzügy
hod5HR

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
5Férfi
5Nő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
3Szolgáltatás
3Pénzügy
2tech
1Támogatás
1HR

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ádaosztály
2hod1Szolgáltatás
2hod2Pénzügy
2hod3tech
1hod5Támogatás
1hod3Szolgáltatás
1hod3Pénzügy
1hod5HR

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évkortelefonnememail
Lehet22456Női
Ana45644Női
lábasok573456Női
res45456Női
Halvány557789Nő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évszenesládaosztály
Lehethod2Pénzügy
lábasokhod2Pénzügy
Tunghod3Pé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 -

  1. SQL beszúrási lekérdezés
  2. SQL nézetek
  3. Adatbázis SQL-ben
  4. Tranzakciók az SQL-ben