Ez a cikk a GROUP BY és az ORDER BY záradék teljes áttekintését ismerteti. Főleg az SQL lekérdezésekkel nyert adatok rendszerezésére szolgálnak. A kitételek közötti különbség az egyik leggyakoribb hely, ahol elakad a tanulás SQL . A fő különbség köztük az a GROUP BY záradék akkor alkalmazható, ha egynél több sorhalmazhoz szeretnénk összesítő függvényeket használni. Az ORDER BY záradék akkor alkalmazható, ha a lekérdezéssel kapott adatokat rendezési sorrendben szeretnénk megkapni . Mielőtt elvégeznénk az összehasonlítást, először ismerjük meg ezeket az SQL-kózusokat.
RENDELÉS ZÁRADÉKKAL
Az ORDER BY záradékot az SQL-lekérdezésekben használják a lekérdezés által visszaadott adatok növekvő vagy csökkenő sorrendbe rendezésére. Ha elhagyjuk a rendezési sorrendet, akkor az összesített eredményt alapértelmezés szerint növekvő sorrendbe rendezi. Az ORDER BY záradék, akárcsak a GROUP BY záradék, a SELECT utasítással együtt használható. ASC növekvő sorrendet jelöl, míg DESC csökkenő sorrendet jelöl.
A következő szintaxis az ORDER BY záradék használatához szükséges egy SQL utasításban:
foreach java
SELECT expressions FROM tables [WHERE conditions] ORDER BY expression [ ASC | DESC ];
Nézzük meg, hogyan működik az ORDER BY záradék a következő példa segítségével. Tegyük fel, hogy van egy asztalunk fejlesztő amely a következő adatokat tartalmazza:
Láthatjuk, hogy ezek az eredmények nem rendszerezetten jelennek meg. Tegyük fel, hogy az eredményeket növekvő vagy csökkenő sorrendbe szeretnénk rendezni az alapján állapotoszlop . Ebben az esetben az ORDER BY parancsra lenne szükségünk a kívánt eredmény eléréséhez. Ezt a következő parancs végrehajtásával tehetjük meg:
mysql> SELECT D_name, D_state, D_salary FROM developers ORDER BY D_state ASC;
Itt a kimenet, ahol megkapjuk a kívánt eredményt:
GROUP BY záradék
A GROUP BY záradékot az SQL-lekérdezésekben használják az azonos attribútumértékekkel rendelkező adatok rendszerezésére. Általában a SELECT utasítással használjuk. Mindig emlékezni kell arra, hogy a GROUP BY záradékot a WHERE záradék után kell elhelyeznünk. Ezenkívül az ORDER BY záradék előtt van ütemezve.
Ezt a záradékot gyakran használhatjuk olyan összesítő függvényekkel együttműködve, mint a SUM, AVG, MIN, MAX és COUNT, hogy összefoglaló jelentéseket készítsünk az adatbázisból. Fontos megjegyezni, hogy az ebben a záradékban szereplő attribútumnak a SELECT záradékban kell megjelennie, nem pedig egy összesítő függvény alatt. Ha így teszünk, a lekérdezés helytelen lesz. Ennek eredményeként a GROUP BY záradékot mindig a SELECT záradékkal együtt használjuk. A GROUP BY záradék lekérdezése csoportosított lekérdezés, és minden csoportosított objektumhoz egyetlen sort ad vissza.
string cserélje ki az összes Java-t
A következő a szintaxis a GROUP BY záradék használatához egy SQL utasításban:
SELECT column_name, function(column_name) FROM table_name WHERE condition GROUP BY column_name;
Egy példa segítségével értsük meg, hogyan működik a GROUP BY záradék. Itt bemutatjuk ugyanezzel a táblázattal.
Tegyük fel, hogy tudni akarjuk a fejlesztő átlagos fizetése egy adott államban és az eredményeket az állapotoszlop alapján csökkenő sorrendbe rendezi. Ebben az esetben a GROUP BY és az ORDER BY parancsra is szükségünk lenne a kívánt eredmény eléréséhez. Ezt a következő parancs végrehajtásával tehetjük meg:
mysql> SELECT D_state, avg(D_salary) AS salary FROM developers GROUP BY D_state ORDER BY D_state DESC;
Ez a lekérdezés kezdetben egy köztes eredményt hozott létre, amely csoportosította az állapotot. Következő, a AVG funkciót hajtjuk végre az egyes állapotcsoportokon, majd rendezzük az eredményt csökkenő sorrendbe, és végül megkapjuk a kívánt eredményeket az alábbiak szerint:
Főbb különbségek a GROUP BY és az ORDER BY között
Az alábbiak a fő különbségek a Csoportosítás és a Rendezés szerinti záradék között:
- A Group By záradék az adatok csoportosítására szolgál egy adott oszlopban lévő azonos érték alapján. Az ORDER BY záradék viszont rendezi az eredményt, és növekvő vagy csökkenő sorrendben jeleníti meg.
- A Csoportosítás használatához kötelező az összesítő függvény használata. Másrészt nem kötelező az összesítő függvény használata a Rendezési szempont használatához.
- Az attribútum nem lehet a GROUP BY utasítás alatt az összesítő függvény alatt, míg az attribútum szerepelhet az ORDER BY utasítás alatt az összesítő függvény alatt.
- A Group By záradék szabályozza a sorok megjelenítését, ami azt jelenti, hogy a csoportosítás a sor attribútumértékeinek hasonlósága alapján történik. Ezzel szemben az ORDER BY záradék szabályozza az oszlopok megjelenítését, ami azt jelenti, hogy a rendezés vagy rendezés az oszlop attribútumértékei alapján történik, növekvő vagy csökkenő sorrendben.
- A GROUP BY mindig a WHERE záradék után, de az ORDER BY utasítás elé kerül. Másrészt az ORDER BY mindig a GROUP BY utasítás után kerül felhasználásra.
GROUP BY vs. ORDER BY összehasonlító diagram
Az alábbi összehasonlító táblázat gyorsan elmagyarázza ezek főbb különbségeit:
SN | CSOPORTOSÍT | RENDEZÉS |
---|---|---|
1. | Az azonos értékkel rendelkező sorok csoportosítására szolgál. | Az eredményhalmazt növekvő vagy csökkenő sorrendbe rendezi. |
2. | A CREATE VIEW utasításban engedélyezhető. | Ez nem megengedett a CREATE VIEW utasításban |
3. | Ez szabályozza a sorok megjelenítését. | Ez szabályozza az oszlopok megjelenítését. |
4. | Az attribútum nem lehet a GROUP BY utasítás összesítési függvénye alatt. | Az attribútum az aggregate függvény alatt lehet az ORDER BY utasítás alatt. |
5. | Mindig az ORDER BY záradék előtt használatos a SELECT utasításban. | Mindig a GROUP BY záradék után kerül felhasználásra a SELECT utasításban. |
6. | Kötelező az összesítő függvények használata a GROUP BY-ben. | Az ORDER BY-ben nem kötelező összesítő függvények használata. |
7. | Itt a csoportosítás a sor attribútumértékeinek hasonlósága alapján történik. | Itt az eredményhalmaz az oszlop attribútumértékei alapján van rendezve, növekvő vagy csökkenő sorrendben. |
Következtetés
A GROUP BY és az ORDER BY záradékok összehasonlítása ebben a cikkben történik. Mindkét záradék rendkívül hasznos SQL adatbázis-szolgáltatás. Ha sorcsoportot szeretnénk létrehozni, akkor a GROUP BY záradékot használjuk. Ha az adatokat egy adott oszlop alapján növekvő vagy csökkenő sorrendbe szeretnénk rendezni, akkor az ORDER BY záradékot használjuk. Nincs kapcsolatuk, mert mindkettőt két különböző célra használják. Azonban kombinálhatjuk őket valamilyen speciális cél érdekében, vagy a körülményektől függően egyedileg is használhatjuk őket. Ezeket a záradékokat csak a SELECT utasítással használhatjuk.
javascript meghívó függvény a html-ből