Johdanto GROUP BY -lausekkeeseen SQL: ssä

Kuviin tulee tapauksia, joissa meidän on ryhmitettävä rivit, joilla on sama arvo Ryhmän mukaan -lause. GROUP BY -lause on SQL: n komento, joka suorittaa tämän toiminnon.

Tärkeää muistaa tässä on, että GROUP BY -lauseketta käytetään SELECT-lauseessa kyselyssä WHERE-lauseen käytön jälkeen.

Syntaksi

Ryhmä By -lauseen syntaksi on -

SELECT column_name1, column_name2, …
FROM table_name
WHERE conditions
GROUP By column_name1, column_name2, …
ORDER By column_name1, column_name2, …;

Syntaksin selitys

  1. SELECT - SQL-komentokysely
  2. table_name - tietokantataulukon nimi, johon viitataan
  3. ehdot - viitataan tarkistettaviin olosuhteisiin
  4. GROUP BY - lauseke ryhmitellä samat rivit yhteen
  5. ORDER BY - käytetään aina Group By -lausekkeen jälkeen rivien järjestämiseen nousevassa tai laskevassa järjestyksessä. Tämä on valinnainen ehto.

Kuinka GROUP BY -lause toimii SQL: ssä?

Otetaan esimerkin avulla ymmärtääksemme ryhmätyön toimintalauseketta. Mieti taulukkoa, jonka nimi on TYÖNTEKIJÄ, joka sisältää työntekijän perustiedot, kuten nimi, ikä, puhelinnumero, dobi, sukupuoli, osoite, sähköpostiosoite jne.

Työntekijöiden taulukko

nimiikäpuhelinsukupuolisähköposti
Johannes23123Uros
saattaa22456Nainen
ana45644Nainen
kattilat573456Nainen
res45456Nainen
rusketus782456Uros
Ran345899Uros
Wan557789Nainen
tung325689Uros
Chung214678Uros

Oletetaan, että TYÖNTEKIJASSA on noin 10 ilmoittautumista.

Otetaan ensin taulukosta eri “sukupuolen” arvot. Kysely, joka auttaa meitä hakemaan tavoitteemme, olisi -

SELECT gender FROM EMPLOYEE;

Tämä antaa meille seuraavat arvot-

sukupuoli
Uros
Nainen
Nainen
Nainen
Nainen
Uros
Uros
Nainen
Uros
Uros

Ongelmana on arvojen redundanssi, ts. Kuten näemme, taulukossa on vain kaksi sukupuolten ainutlaatuista arvoa, mutta tulos ei anna meille vain yksilöllisiä arvoja, vaan kaikki arvot, vaikka ne toistuvat.

Joten saadaksemme taulukosta vain yksilölliset arvot, käytämme seuraavaa kyselyä -

SELECT gender FROM EMPLOYEE GROUP BY gender;

Tämän kyselyn suorittamisen jälkeen saamme tulos -

sukupuoli
Uros
Nainen

Ryhmittely ryhmittelee kaikki samat rivien arvot yhteen ja palauttaa heille vain yhden merkinnän tai yhden rivin, kuten se tapahtui taulukon ”Mies” ja “Nainen” rivien kanssa. Tuloksena oli vain kaksi ainutlaatuista arvoa, jotka olivat läsnä sukupuolen sarakkeessa i, ts. Nainen ja Mies.

Otetaan nyt toinen esimerkki taulukosta, joka sisältää sen osaston yksityiskohdat, johon kaikki nämä työntekijät liittyvät. Tätä kutsutaan työntekijäosasto-taulukkoksi.

Työntekijöiden osastopöytä

nimihodosasto
Johanneshod1palvelu
saattaahod2Rahoittaa
anahod1palvelu
kattilathod2Rahoittaa
reshod3teknologia
rusketushod5Tuki
Ranhod3palvelu
Wanhod3teknologia
tunghod3Rahoittaa
Chunghod5HR

Joten nyt suoritamme alla oleva kysely ja etsiä tulosta -

SELECT hod, department FROM Employee_Department GROUP BY hod, department;

Tämän kyselyn suorittaminen hakee seuraavan tuloksen -

hodosasto
hod1palvelu
hod2Rahoittaa
hod3teknologia
hod5Tuki
hod3palvelu
hod3Rahoittaa
hod5HR

GROUP BY -lause toimii sekä kotelossa että osastossa etsittäessä ainutlaatuisia rivejä yllä mainitussa skenaariossa. Se tarkistaa hodin ja osaston yhdistelmän hodin ja osaston muiden merkintöjen perusteella sen ainutlaatuisuuden tunnistamiseksi. Jos hod on sama, mutta osasto on erilainen, silloin riviä käsitellään ainutlaatuisena. Jos kotelo ja osasto ovat samat useammalle kuin yhdelle riville, päällekkäistä merkintää ei luoda ja näytetään vain yksi rivi.

RYHMITTÄMINEN lausekeoperaatiot

Voimme käyttää Group By -lauseketta useiden ryhmittely- ja yhdistelmätoimintojen kanssa. Otetaan muutamia esimerkkejä käyttämällä kahta edellä mainittua taulukkoa, ts. EMPLOYEE ja Employee_Department.

Esimerkki # 1

Mies- ja naispuolisten työntekijöiden lukumäärän saaminen yrityksessä.

SELECT gender, COUNT(`name`) FROM EMPLOYEE GROUP BY gender;

Tämän kyselyn suorittaminen hakee seuraavan tuloksen -

COUNT (nimi)sukupuoli
5Uros
5Nainen

Esimerkki 2

Yrityksen osastojen määrän laskeminen alenevassa järjestyksessä.

SELECT department, COUNT(`name`) FROM Employee_Department GROUP BY department ORDER BY COUNT(name) DESC;

Tämän kyselyn suorittaminen hakee seuraavan tuloksen -

COUNT (nimi)osasto
3palvelu
3Rahoittaa
2teknologia
1Tuki
1HR

Esimerkki 3

Eri osastojen lukumäärän saaminen yrityksessä saman hodin alla laskevien järjestysten mukaan.

SELECT hod, department, COUNT(`name`) FROM Employee_Department GROUP BY hod, department ORDER BY COUNT(name) DESC;

Tämän kyselyn suorittaminen hakee seuraavan tuloksen -

COUNT (nimi)hodosasto
2hod1palvelu
2hod2Rahoittaa
2hod3teknologia
1hod5Tuki
1hod3palvelu
1hod3Rahoittaa
1hod5HR

SQL: n HAVING-lause

HAVING-lauseen käyttö Group By -lausekkeen avulla rajoittaa kyselyn tuloksen riveihin, joiden arvo on mainittu ottaa-lauseen kanssa.

Tämän ymmärtäminen esimerkillä helpottaa -

Esimerkki 4

SELECT * FROM EMPLOYEE GROUP BY gender HAVING gender = “Female”;

Tämän kyselyn suorittaminen hakee seuraavan tuloksen -

nimiikäpuhelinsukupuolisähköposti
saattaa22456Nainen
ana45644Nainen
kattilat573456Nainen
res45456Nainen
Wan557789Nainen

Esimerkki 5

SELECT * FROM Employee_Department GROUP BY department HAVING department = “Finance”;

Tämän kyselyn suorittaminen hakee seuraavan tuloksen -

nimihodosasto
saattaahod2Rahoittaa
kattilathod2Rahoittaa
tunghod3Rahoittaa

johtopäätös

Käyttämällä GROUP BY -lauseketta SELECT-lauseen kanssa, voimme ryhmitellä samat arvot sisältävät rivit yhdessä aggregoitujen funktioiden, vakioiden ja lausekkeiden kanssa.

Suositellut artikkelit

Tämä on opas GROUP BY -lauseeseen SQL: ssä. Tässä keskustellaan kuinka GROUP BY -lause toimii SQL: ssä esimerkkien ja työntekijätaulukoiden avulla. Saatat myös katsoa seuraavia artikkeleita saadaksesi lisätietoja -

  1. SQL-lisäyskysely
  2. SQL-näkymät
  3. Tietokanta SQL: ssä
  4. Tapahtumat SQL: ssä