SQL GROUP BY -komento

, Author

Täältä näet Count-komennon ennen GROUP BY -komennon käyttöä. GROUP BYkomento luo ryhmiä määritetyn kentän nimessä ja laskee tietueiden määrän ryhmissä. Tämä on erittäin hyödyllinen komento.
Voidaan myös käyttää WHERE-komentoa yhdessä GROUP BY-komennon kanssa Mysql-taulukoissa.

SELECT count(*) as total_records, class FROM `student` group by class

Tämä näyttää kunkin luokan tietueiden kokonaismäärän. Näin

total_records class
1 Eight
3 Viisi
9 Neljä
2 Yhdeksän
10 Seitsemän
7 Seitsemän
3 Kolme

Kokeilemme saada tyttöjen tietueiden yhteismäärän kussakin luokassa GROUP BY-kyselyllä. Tässä haluamme suodattaa kyselymme koskemaan vain tyttöjä, joten meidän on käytettävä yhtä WHERE-lauseketta tietueiden rajoittamiseksi sukupuolikentän avulla. Tässä on kysely.

SELECT class,count( * ) AS total_records FROM `student` WHERE sex='female' GROUP BY class

Tuloste on tässä

.

luokka total_records
Nelonen 5 5
Yhdeksän 1
Seitsemän 5
Kuusi 5
Kolme 1

Duplikaattitietueet

Voimme selvittää taulukon duplikaattitietueet käyttämällä group by -komentoa. Luomme toisen taulukon student2_1 käyttämällä samoja tietoja ja lisäämällä joitakin päällekkäisiä tietueita. Tässä on kysely

SELECT name, COUNT(id) AS no from student2_1 group by name having no > 1

Tulos on tässä .

nimi nro
Arnold 2
Tade Row 3

Sivun lopusta voit ladata SQL-dumppausdatan tästä taulukosta stduent2_1, johon on lisätty päällekkäisiä tietoja.

Miten poistetaan päällekkäiset tietueet

Käyttämällä ryhmittelyä päivämääräkentän perusteella voimme luoda luettelon kalenterivuoden, tilivuoden ja kuukauden perusteella

Esimerkkikoodi

Tässä on esimerkkikoodi, jonka avulla ymmärrät, miten ryhmittelyä käytetään PHP-skriptin ja PDO:n avulla.
PART II: Yritämme soveltaa group by -komentoa useampaan kuin yhteen kenttään. Tätä varten luomme uuden taulukon ja keskustelemme siitä yksityiskohtaisesti. Seuraava osa II
Lataa alas tämän opiskelijataulukon SQL DUMP
Lataa alas stduent2_1-taulukon SQL DUMP

Tämän artikkelin on kirjoittanut plus2net.com-tiimi.

Vastaa

Sähköpostiosoitettasi ei julkaista.