logo

SQL | ZDRUŽI PO

Izjava GROUP BY v SQL se uporablja za razvrščanje enakih podatkov v skupine s pomočjo nekaterih funkcij. če ima določen stolpec enake vrednosti v različnih vrsticah, bo te vrstice razporedil v skupino.

Lastnosti

  • Klavzula GROUP BY se uporablja s stavkom SELECT.
  • V poizvedbi je klavzula GROUP BY postavljena za KJE klavzula.
  • V poizvedbi je klavzula GROUP BY postavljena pred NAROČITE BY klavzula, če je uporabljena.
  • V poizvedbi je klavzula Group BY postavljena pred klavzulo Having.
  • Postavite pogoj v klavzulo imeti.

Sintaksa :

IZBERI stolpec1, ime_funkcije(stolpec2)



FROM ime_tabele

KJE pogoj

ZDRUŽI PO stolpcu1, stolpcu2

ORDER BY stolpec1, stolpec2;

Pojasnilo:

negacijska diskretna matematika
  1. ime_funkcije : ime uporabljene funkcije, na primer SUM(), AVG().
  2. ime_tabele : Ime tabele.
  3. stanje : uporabljeno stanje.

Predpostavimo, da imamo dve tabeli. Vzorčna tabela zaposlenih in študentov je naslednja. Po dodajanju dveh tabel bomo izvedli nekaj posebnih operacij, da se naučimo o GROUP BY.

Tabela zaposlenih:

velikost besedila iz lateksa
CREATE TABLE emp ( emp_no INT PRIMARY KEY, name VARCHAR(50), sal DECIMAL(10,2), age INT );>

V tabelo vstavite nekaj naključnih podatkov in nato bomo izvedli nekaj operacij v GROUP BY.

poizvedba:

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);>

Izhod:

Študentska miza:

poizvedba:

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');>

Izhod:

Združi po enem stolpcu

Skupina z enim stolpcem pomeni umestitev vseh vrstic z enako vrednostjo samo tega določenega stolpca v eno skupino. Razmislite o poizvedbi, kot je prikazano spodaj:

poizvedba:

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

Zgornja poizvedba bo ustvarila spodnji rezultat:

Kot lahko vidite v zgornjem izhodu, so vrstice s podvojenimi IMENI združene pod istim IMENOM in njihova ustrezna PLAČA je vsota PLAČE podvojenih vrstic. Funkcija SUM() SQL se tukaj uporablja za izračun vsote.

Združi po več stolpcih

Združevanje po več stolpcih je npr. ZDRUŽI PO stolpcu1, stolpcu2 . To pomeni, da postavite vse vrstice z enakimi vrednostmi stolpcev stolpec 1 in stolpec 2 v eni skupini. Razmislite o spodnji poizvedbi:

poizvedba:

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

Izhod:

ujemi in preizkusi javo

Izhod : Kot lahko vidite v zgornjem rezultatu, so učenci z istim PREDMETOM in LETNIKOM uvrščeni v isto skupino. In tisti, pri katerih je edini SUBJEKT enak, ne pa tudi LETO, spadajo v različne skupine. Tukaj smo tabelo združili v skupine glede na dva stolpca ali več kot en stolpec.

Klavzula HAVING v klavzuli GROUP BY

Vemo, da se klavzula WHERE uporablja za postavljanje pogojev v stolpce, toda kaj, če želimo pogoje postaviti v skupine? Tu pride v uporabo klavzula HAVING. S klavzulo HAVING lahko postavimo pogoje za odločitev, katera skupina bo del končnega nabora rezultatov. Prav tako ne moremo uporabljati agregatnih funkcij, kot so SUM(), COUNT() itd. s stavkom WHERE. Zato moramo uporabiti klavzulo HAVING, če želimo uporabiti katero koli od teh funkcij v pogojih.

Sintaksa :

IZBERI stolpec1, ime_funkcije(stolpec2)

FROM ime_tabele

KJE pogoj

ZDRUŽI PO stolpcu1, stolpcu2

IMAJO stanje

ORDER BY stolpec1, stolpec2;

Pojasnilo:

  1. ime_funkcije : ime uporabljene funkcije, na primer SUM(), AVG().
  2. ime_tabele : Ime tabele.
  3. stanje : uporabljeno stanje.

Primer :

SELECT NAME, SUM(sal) FROM Emp GROUP BY name HAVING SUM(sal)>3000;>

Izhod :

Kot lahko vidite v zgornjem izhodu, se v nizu rezultatov pojavi samo ena skupina od treh skupin, saj je to edina skupina, kjer je vsota PLAČE večja od 3000. Zato smo tukaj uporabili klavzulo HAVING, da ta pogoj postavimo kot Pogoj mora biti postavljen v skupine in ne v stolpce.

javascript za zanko