A GROUP BY parancs használata előtt itt láthatja a Count parancsot. A GROUP BYparancs csoportokat hoz létre a megadott mezőnévben, és megszámolja a csoportokban lévő rekordok számát. Ez egy nagyon hasznos parancs.
A Mysql táblákban a GROUP BY paranccsal együtt használhatjuk a WHERE parancsot is.
SELECT count(*) as total_records, class FROM `student` group by class
Ez az egyes osztályok összes rekordját fogja megjeleníteni. Például így
total_records | class |
1 | Eight |
3 | Öt |
9 | Négy |
2 | Kilenc |
10 | hét |
7 | hat |
3 | három |
Próbáljuk meg a GROUP BY lekérdezéssel megkapni az egyes osztályokban szereplő lányrekordok teljes számát. Itt csak a lányokra szeretnénk szűrni a lekérdezésünket, ezért egy WHERE záradékot kell használnunk, hogy a rekordokat a nem mező segítségével korlátozzuk. Íme a lekérdezés.
SELECT class,count( * ) AS total_records FROM `student` WHERE sex='female' GROUP BY class
A kimenet itt van
osztály | total_records |
négy | 5 |
kilenc | 1 |
hét | 5 |
Six | 5 |
Three | 1 |
Duplikált rekordok
A duplikált rekordokat a táblázatban a group by parancs segítségével találhatjuk meg. Ugyanezen adatok felhasználásával és néhány duplikált rekord hozzáadásával létrehozunk egy másik student2_1 táblát. Itt van a lekérdezés
SELECT name, COUNT(id) AS no from student2_1 group by name having no > 1
A kimenet itt van .
név | nem |
---|---|
Arnold | 2 |
Tade Row | 3 |
Az oldal végén letöltheti a stduent2_1 táblázat SQL dumpját a hozzáadott duplikált adatokkal.
Hogyan törölhetjük a duplikált rekordokat
A dátum mezőre való csoportosítással naptári év, pénzügyi év, hónap szerinti listát készíthetünk
Mintakód
Itt egy mintakód, hogy megértsük, hogyan használjuk a csoportos lekérdezést PHP script és PDO segítségével.
PART II: Megpróbáljuk alkalmazni a group by parancsot egynél több mezőre. Ehhez létrehozunk egy új táblázatot, és részletesen megbeszéljük. Következő II. rész
Töltse le ennek a diák táblának az SQL DUMP-ját
Töltse le a stduent2_1 tábla SQL DUMP-ját