Tämä artikkeli selittää täydellisen yleiskatsauksen GROUP BY- ja ORDER BY -lausekkeista. Niitä käytetään pääasiassa SQL-kyselyillä saadun tiedon järjestämiseen. Näiden lauseiden välinen ero on yksi yleisimmistä paikoista, joissa jumiutua oppimisen aikana SQL . Tärkein ero niiden välillä on se GROUP BY -lausetta voidaan soveltaa, kun haluamme käyttää koostefunktioita useammalle kuin yhdelle rivijoukolle. ORDER BY -lausetta sovelletaan, kun haluamme saada kyselyllä saadut tiedot lajittelujärjestyksessä . Ennen vertailun tekemistä tunnemme ensin nämä SQL-lauseet.
TILAA lausekkeen mukaan
ORDER BY -lausetta käytetään SQL-kyselyissä lajittelemaan kyselyn palauttamat tiedot nousevaan tai laskevaan järjestykseen. Jos jätämme pois lajittelujärjestyksen, se lajittelee yhteenvedon tuloksen oletusarvoisesti nousevaan järjestykseen. ORDER BY -lausetta, kuten GROUP BY -lausetta, voidaan käyttää yhdessä SELECT-käskyn kanssa. ASC tarkoittaa nousevaa järjestystä, while DESC tarkoittaa laskevaa järjestystä.
Seuraava on syntaksi ORDER BY -lauseen käyttämiselle SQL-käskyssä:
c++ muuntaa in merkkijonoksi
SELECT expressions FROM tables [WHERE conditions] ORDER BY expression [ ASC | DESC ];
Ymmärrämme, miten ORDER BY -lause toimii seuraavan esimerkin avulla. Oletetaan, että meillä on pöytä kehittäjä joka sisältää seuraavat tiedot:
Näemme, että näitä tuloksia ei näytetä järjestelmällisesti. Oletetaan, että haluamme järjestää tulokset nousevaan tai laskevaan järjestykseen perustuen valtion sarake . Siinä tapauksessa tarvitsemme ORDER BY -komennon saadaksemme halutun tuloksen. Voimme tehdä tämän suorittamalla komennon seuraavasti:
mysql> SELECT D_name, D_state, D_salary FROM developers ORDER BY D_state ASC;
Tässä on tulos, josta saamme halutut tulokset:
GROUP BY Clause
GROUP BY -lausetta käytetään SQL-kyselyissä järjestämään tietoja, joilla on samat attribuuttiarvot. Yleensä käytämme sitä SELECT-käskyn kanssa. On aina muistettava, että meidän on sijoitettava GROUP BY -lause WHERE-lauseen perään. Lisäksi se on tahdistettu ennen ORDER BY -lauseketta.
Voimme usein käyttää tätä lauseketta yhdessä aggregaattifunktioiden, kuten SUM, AVG, MIN, MAX ja COUNT, kanssa tuottaaksemme yhteenvetoraportteja tietokannasta. On tärkeää muistaa, että tämän lauseen attribuutin tulee esiintyä SELECT-lauseessa, ei koontifunktion alla. Jos teemme niin, kysely olisi virheellinen. Tämän seurauksena GROUP BY -lausetta käytetään aina yhdessä SELECT-lauseen kanssa. GROUP BY -lauseen kysely on ryhmitelty kysely, ja se palauttaa yhden rivin jokaiselle ryhmitetylle objektille.
sql ddl -komennot
Seuraava on syntaksi GROUP BY -lauseen käyttämiselle SQL-käskyssä:
SELECT column_name, function(column_name) FROM table_name WHERE condition GROUP BY column_name;
Ymmärrämme esimerkin avulla, kuinka GROUP BY -lause toimii. Tässä esittelemme sen samalla taulukolla.
Oletetaan, että haluamme tietää kehittäjän keskipalkka tietyssä osavaltiossa ja järjestää tulokset laskevaan järjestykseen tilasarakkeen perusteella. Siinä tapauksessa tarvitsemme sekä GROUP BY- että ORDER BY -komennon saadaksemme halutun tuloksen. Voimme tehdä tämän suorittamalla komennon seuraavasti:
mysql> SELECT D_state, avg(D_salary) AS salary FROM developers GROUP BY D_state ORDER BY D_state DESC;
Tämä kysely muodosti alun perin välituloksen, joka on ryhmitellyt tilan. Seuraavaksi, AVG toiminto suoritetaan jokaiselle tilaryhmälle, lajittele sitten tulos laskevaan järjestykseen ja lopuksi saamme halutut tulokset alla olevan kuvan mukaisesti:
Keskeiset erot GROUP BY:n ja ORDER BY:n välillä
Seuraavat ovat tärkeimmät erot Group By- ja Order By -lausekkeen välillä:
- Group By -lausetta käytetään tietojen ryhmittelyyn tietyn sarakkeen saman arvon perusteella. ORDER BY -lause puolestaan lajittelee tuloksen ja näyttää sen nousevassa tai laskevassa järjestyksessä.
- Ryhmäperusteen käyttäminen on pakollista koontifunktion käyttäminen. Toisaalta ei ole pakollista käyttää koontifunktiota Tilausperusteen käyttämiseen.
- Attribuutti ei voi olla GROUP BY -käskyn alla koostefunktiossa, kun taas attribuutti voi olla ORDER BY -käskyn alla koostefunktiossa.
- Group By -lause ohjaa monikoiden esitystapaa, mikä tarkoittaa, että ryhmittely tehdään rivin attribuuttiarvojen samankaltaisuuden perusteella. Sitä vastoin ORDER BY -lause ohjaa sarakkeiden esitystapaa, mikä tarkoittaa, että järjestys tai lajittelu tapahtuu sarakkeen attribuuttiarvojen perusteella joko nousevassa tai laskevassa järjestyksessä.
- GROUP BY sijoitetaan aina WHERE-lauseen jälkeen, mutta ennen ORDER BY -lausetta. Toisaalta ORDER BY:tä käytetään aina GROUP BY -käskyn jälkeen.
GROUP BY vs. ORDER BY -vertailukaavio
Seuraava vertailukaavio selittää niiden tärkeimmät erot nopeasti:
SN | GROUP BY | TILAA |
---|---|---|
1. | Sitä käytetään ryhmittelemään rivit, joilla on samat arvot. | Se lajittelee tulosjoukon joko nousevaan tai laskevaan järjestykseen. |
2. | Se voidaan sallia CREATE VIEW -käskyssä. | Se ei ole sallittu CREATE VIEW -käskyssä |
3. | Se ohjaa rivien esitystapaa. | Se ohjaa sarakkeiden esitystapaa. |
4. | Attribuutti ei voi olla GROUP BY -käskyn koontifunktion alla. | Attribuutti voi olla ORDER BY -käskyn aggregate-funktion alla. |
5. | Sitä käytetään aina ennen ORDER BY -lausetta SELECT-käskyssä. | Sitä käytetään aina GROUP BY -lauseen jälkeen SELECT-käskyssä. |
6. | Aggregaattifunktioiden käyttö GROUP BY:ssä on pakollista. | Aggregaattifunktioiden käyttäminen ORDER BY:ssä ei ole pakollista. |
7. | Tässä ryhmittely tehdään rivin attribuuttiarvojen samankaltaisuuden perusteella. | Tässä tulosjoukko lajitellaan sarakkeen attribuuttiarvojen perusteella joko nousevaan tai laskevaan järjestykseen. |
Johtopäätös
GROUP BY- ja ORDER BY -lauseita verrataan tässä artikkelissa. Molemmat lausekkeet ovat erittäin hyödyllisiä SQL-tietokantaominaisuuksia. Kun haluamme muodostaa ryhmän riveistä, käytämme GROUP BY -lausetta. Jos haluamme järjestää tiedot nousevaan tai laskevaan järjestykseen tietyn sarakkeen perusteella, käytämme ORDER BY -lausetta. Heillä ei ole mitään suhdetta, koska molempia käytetään kahteen eri tarkoitukseen. Voimme kuitenkin yhdistää niitä johonkin erityiseen tarkoitukseen tai käyttää niitä yksitellen olosuhteista riippuen. Voimme käyttää näitä lauseita vain SELECT-käskyn kanssa.
instantoitu java