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
- SELECT - SQL-komentokysely
- table_name - tietokantataulukon nimi, johon viitataan
- ehdot - viitataan tarkistettaviin olosuhteisiin
- GROUP BY - lauseke ryhmitellä samat rivit yhteen
- 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
nimi | ikä | puhelin | sukupuoli | sähköposti |
Johannes | 23 | 123 | Uros | |
saattaa | 22 | 456 | Nainen | |
ana | 45 | 644 | Nainen | |
kattilat | 57 | 3456 | Nainen | |
res | 45 | 456 | Nainen | |
rusketus | 78 | 2456 | Uros | |
Ran | 34 | 5899 | Uros | |
Wan | 55 | 7789 | Nainen | |
tung | 32 | 5689 | Uros | |
Chung | 21 | 4678 | Uros |
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ä
nimi | hod | osasto |
Johannes | hod1 | palvelu |
saattaa | hod2 | Rahoittaa |
ana | hod1 | palvelu |
kattilat | hod2 | Rahoittaa |
res | hod3 | teknologia |
rusketus | hod5 | Tuki |
Ran | hod3 | palvelu |
Wan | hod3 | teknologia |
tung | hod3 | Rahoittaa |
Chung | hod5 | HR |
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 -
hod | osasto |
hod1 | palvelu |
hod2 | Rahoittaa |
hod3 | teknologia |
hod5 | Tuki |
hod3 | palvelu |
hod3 | Rahoittaa |
hod5 | HR |
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 |
5 | Uros |
5 | Nainen |
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 |
3 | palvelu |
3 | Rahoittaa |
2 | teknologia |
1 | Tuki |
1 | HR |
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) | hod | osasto |
2 | hod1 | palvelu |
2 | hod2 | Rahoittaa |
2 | hod3 | teknologia |
1 | hod5 | Tuki |
1 | hod3 | palvelu |
1 | hod3 | Rahoittaa |
1 | hod5 | HR |
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 -
nimi | ikä | puhelin | sukupuoli | sähköposti |
saattaa | 22 | 456 | Nainen | |
ana | 45 | 644 | Nainen | |
kattilat | 57 | 3456 | Nainen | |
res | 45 | 456 | Nainen | |
Wan | 55 | 7789 | Nainen |
Esimerkki 5
SELECT * FROM Employee_Department GROUP BY department HAVING department = “Finance”;
Tämän kyselyn suorittaminen hakee seuraavan tuloksen -
nimi | hod | osasto |
saattaa | hod2 | Rahoittaa |
kattilat | hod2 | Rahoittaa |
tung | hod3 | Rahoittaa |
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 -
- SQL-lisäyskysely
- SQL-näkymät
- Tietokanta SQL: ssä
- Tapahtumat SQL: ssä