Możesz zobaczyć polecenie Count przed użyciem polecenia GROUP BY tutaj. Polecenie GROUP BY tworzy grupy w podanej nazwie pola i zlicza ilość rekordów w grupach. Jest to bardzo przydatne polecenie.
Możemy również użyć polecenia WHERE wraz z poleceniem GROUP BY w tabelach Mysql.
SELECT count(*) as total_records, class FROM `student` group by class
Wyświetli to sumę rekordów w każdej klasie. Tak jak poniżej
total_records | class |
1 | Eight |
3 | Pięć |
9 | Cztery |
2 | Dziewięć |
10 | Siedem |
7 | Sześć |
3 | Trzy |
Spróbujmy uzyskać całkowitą liczbę rekordów dziewcząt w każdej klasie za pomocą zapytania GROUP BY. Tutaj chcemy przefiltrować nasze zapytanie tylko dla dziewcząt, więc musimy użyć jednej klauzuli WHERE, aby ograniczyć rekordy używając pola płci. Oto zapytanie.
SELECT class,count( * ) AS total_records FROM `student` WHERE sex='female' GROUP BY class
Wyjście jest tutaj
klasa | total_records |
Cztery | 5 |
Dziewięć | 1 |
Siedem | 5 |
Sześć | 5 |
Trzy | 1 |
Duplikaty rekordów
Możemy znaleźć zduplikowane rekordy w tabeli za pomocą polecenia group by. Utworzymy kolejną tabelę student2_1 używając tych samych danych i dodając kilka zduplikowanych rekordów. Oto zapytanie
SELECT name, COUNT(id) AS no from student2_1 group by name having no > 1
Wyjście jest tutaj .
name | no |
---|---|
Arnold | 2 |
Tade Row | 3 |
Możesz pobrać zrzut SQL tej tabeli stduent2_1 z dodanymi zduplikowanymi danymi na końcu tej strony.
Jak usunąć zduplikowane rekordy
Używając group by na polu daty możemy wygenerować listę na podstawie roku kalendarzowego, finansowego, miesiąca
Przykładowy kod
Tutaj jest przykładowy kod aby zrozumieć jak używać zapytania group by używając skryptu PHP i PDO.
Część II: Spróbujemy zastosować grupowanie według polecenia więcej niż jednego pola. W tym celu utworzymy nową tabelę i omówimy ją szczegółowo. Następna część II
Załaduj SQL DUMP tej tabeli student
Załaduj SQL DUMP tabeli stduent2_1