logo

SQL | GROUP BY

GROUP BY -lausunto SQL käytetään identtisten tietojen järjestämiseen ryhmiin joidenkin funktioiden avulla. eli jos tietyllä sarakkeella on samat arvot eri riveillä, se järjestää nämä rivit ryhmään.

ominaisuudet

  • GROUP BY -lausetta käytetään SELECT-käskyn kanssa.
  • Kyselyssä GROUP BY -lause sijoitetaan lausekkeen perään MISSÄ lauseke.
  • Kyselyssä GROUP BY -lause sijoitetaan ennen TILAUS BY lausekkeella, jos sitä käytetään.
  • Kyselyssä Group BY -lause sijoitetaan ennen Have-lausetta.
  • Aseta ehto have-lauseeseen.

Syntaksi :



SELECT sarake1, funktion_nimi(sarake2)

FROM taulukon_nimi

WHERE kunto



mamta kulkarni

GROUP BY sarake1, sarake2

ORDER BY sarake1, sarake2;

Selitys:



  1. funktion_nimi : Käytetyn funktion nimi, esimerkiksi SUM() , AVG().
  2. taulukon_nimi : Taulukon nimi.
  3. kunto : Kunto käytetty.

Oletetaan, että meillä on kaksi taulukkoa Työntekijän ja Opiskelijan näytetaulukko on seuraava, kun olemme lisänneet kaksi taulukkoa, teemme joitain erityistoimenpiteitä oppiaksemme GROUP BY:stä.

Työntekijätaulukko:

prioriteettijono c++
CREATE TABLE emp ( emp_no INT PRIMARY KEY, name VARCHAR(50), sal DECIMAL(10,2), age INT );>

Lisää satunnaisia ​​tietoja taulukkoon ja sitten suoritamme joitain toimintoja GROUP BY:ssä.

Kysely:

INSERT INTO emp (emp_no, name, sal, age) VALUES (1, 'Aarav', 50000.00, 25), (2, 'Aditi', 60000.50, 30), (3, 'Amit', 75000.75, 35), (4, 'Anjali', 45000.25, 28), (5, 'Chetan', 80000.00, 32), (6, 'Divya', 65000.00, 27), (7, 'Gaurav', 55000.50, 29), (8, 'Isha', 72000.75, 31), (9, 'Kavita', 48000.25, 26), (10, 'Mohan', 83000.00, 33);>

Lähtö:

Oppilaspöytä:

Kysely:

CREATE TABLE student ( name VARCHAR(50), year INT, subject VARCHAR(50) ); INSERT INTO student (name, year, subject) VALUES ('Alice', 1, 'Mathematics'), ('Bob', 2, 'English'), ('Charlie', 3, 'Science'), ('David', 1, 'History'), ('Emily', 2, 'Art'), ('Frank', 3, 'Computer Science');>

Lähtö:

Ryhmittele yhden sarakkeen mukaan

Ryhmä yhdellä sarakkeella tarkoittaa, että kaikki rivit, joilla on sama arvo vain kyseisessä sarakkeessa, sijoitetaan yhteen ryhmään. Harkitse kyselyä alla olevan kuvan mukaisesti:

Kysely:

SELECT NAME, SUM(SALARY) FROM emp GROUP BY NAME;>

Yllä oleva kysely tuottaa seuraavan tuloksen:

Kuten yllä olevasta tulosteesta näet, rivit, joilla on päällekkäiset NIMET, on ryhmitelty saman NIMEN alle ja niitä vastaava PALKKA on päällekkäisten rivien PALKAN summa. SQL:n SUM()-funktiota käytetään tässä summan laskemiseen.

kokonaisluku merkkijonoksi javassa

Ryhmittele useiden sarakkeiden mukaan

Ryhmittely useiden sarakkeiden mukaan on esim. GROUP BY sarake1, sarake2 . Tämä tarkoittaa kaikkien rivien sijoittamista samoilla sarakkeiden arvoilla sarake 1 ja sarake 2 yhdessä ryhmässä. Harkitse alla olevaa kyselyä:

Kysely:

SELECT SUBJECT, YEAR, Count(*) FROM Student GROUP BY SUBJECT, YEAR;>

Lähtö:

Lähtö : Kuten yllä olevasta tuloksesta näkyy, opiskelijat, joilla on sekä sama AINE että VUOSI, sijoitetaan samaan ryhmään. Ja ne, joiden ainoa AIHE on sama mutta ei YEAR, kuuluvat eri ryhmiin. Joten tässä olemme ryhmitellyt taulukon kahden sarakkeen tai useamman sarakkeen mukaan.

HAVING lauseke GROUP BY -lausekkeessa

Tiedämme, että WHERE-lausetta käytetään ehtojen asettamiseen sarakkeisiin, mutta entä jos haluamme asettaa ehtoja ryhmiin? Tässä tulee käyttöön HAVING-lauseke. Voimme käyttää HAVING-lauseketta asettaaksemme ehtoja päättääksemme, mikä ryhmä tulee osaksi lopputulossarjaa. Emme myöskään voi käyttää koontifunktioita, kuten SUM(), COUNT() jne. WHERE-lauseen kanssa. Joten meidän on käytettävä HAVING-lausetta, jos haluamme käyttää jotakin näistä toiminnoista ehdoissa.

Syntaksi :

SELECT sarake1, funktion_nimi(sarake2)

FROM taulukon_nimi

WHERE kunto

GROUP BY sarake1, sarake2

ON kunnossa

ORDER BY sarake1, sarake2;

Selitys:

  1. funktion_nimi : Käytetyn funktion nimi, esimerkiksi SUM() , AVG().
  2. taulukon_nimi : Taulukon nimi.
  3. kunto : Kunto käytetty.

Esimerkki :

Kuten yllä olevassa tulosteessa näkyy, vain yksi ryhmä kolmesta ryhmästä näkyy tulosjoukossa, koska se on ainoa ryhmä, jossa PALKAN summa on suurempi kuin 3000. Joten olemme käyttäneet HAVING-lausetta tässä asettamaan tämän ehdon ehto on asetettava ryhmiin, ei sarakkeisiin.

tojson java