Skirtumas tarp grupės ir užsakymo pagal SQL

Autorius: Laura McKinney
Kūrybos Data: 1 Balandis 2021
Atnaujinimo Data: 15 Gegužė 2024
Anonim
CS50 2013 - Week 9, continued
Video.: CS50 2013 - Week 9, continued

Turinys


SQL leidžia organizuoti užklausos būdu gautus duomenis. Duomenų, gautų iš užklausos, tvarkymui yra dvi sakiniai: „By By“ ir „Order By“. Ryškumas, išskiriantis „Group By“ ir „Order By“ išlygas, yra tas Grupuoti pagal sakinys naudojamas, kai norime pritaikyti apibendrintą funkciją daugiau nei vienam padavimų rinkiniui ir Rūšiuoti pagal išlyga naudojama, kai norime surūšiuoti duomenis, gautus pagal užklausą. Toliau pateiktoje palyginimo diagramoje aptarsime kai kuriuos skirtumus tarp grupės pagal sakinį ir užsakymo pagal sakinį.

  1. Palyginimo diagrama
  2. Apibrėžimas
  3. Pagrindiniai skirtumai
  4. Išvada

Palyginimo diagrama

Palyginimo pagrindasGrupuoti pagalRūšiuoti pagal
PagrindinisGrupė Iki yra naudojama formuluoklių grupės sudarymui.Užsakyti iki yra naudojamas sutvarkyti duomenis, gautus atlikus užklausą Rūšiuota forma.
Atributas Atributas, esantis pagal „Aggregate“ funkciją, negali būti grupėje pagal skyrių.Suvestinis atributas gali būti eilės tvarka.
ŽemėsAtlikta remiantis atributų verčių panašumu.Priimta kylančios ir mažėjančios eilės tvarka.

Grupės apibrėžimas pagal sakinį

Suvestinės funkcijos, tokios kaip vid., Min., Maks., Suma, skaičiavimas, yra taikomos atskirai vienkartinei grupei. Tuo atveju, jei norite pritaikyti apibendrintas funkcijas pakartotinių grupių rinkiniui, tada mes turime grupę pagal išlygą. Grupuoti pagal sakinius sugrupuoja vienkartinius elementus, turinčius tą pačią atributo vertę.


Yra vienas dalykas Prisiminti apie grupės išlygą įsitikinkite, kad atributas po Grupuoti pagal punktas turi būti nurodytas PASIRINKTI išlyga, bet ne pagal jungtinė funkcija. Jei „Group By“ sakinyje yra atributas, kuris nėra pagal SELECT sakinį, arba jei jis yra pagal SELECT sakinį, bet pagal jungtinę funkciją, tada užklausa tampa klaidinga. Taigi galime pasakyti, kad „Group By“ sąlyga visada naudojama bendradarbiaujant su „SELECT“ išlyga.

Paimkime pavyzdį, kad suprastume „Group By“ išlygą.

PASIRINKTI skyrius _ID, vid. (Atlyginimas) kaip mokytojų grupės atlyginimas kaip atlyginimas. Pagal departamento ID.


Galite pastebėti, kad iš pradžių susidaro tarpinis rezultatas, kuris sugrupuoja skyrius.

Toliau kiekvienai skyrių grupei taikoma apibendrinta funkcijos vid., O rezultatas parodytas žemiau.

Įsakymo apibrėžimas pagal išlygą

Užsakymas pagal išlygą yra naudojamas duomenims, gautiems pagal užklausą, pateikti surūšiuota tvarka. Kaip „Group By“ sąlyga, „Order By“ sąlyga taip pat naudojama bendradarbiaujant su „SELECT“ išlyga. Jei neminite rūšiavimo tvarkos, „Order By“ (sambūris pagal tvarką) duomenys rūšiuojami didėjimo tvarka. Galite nurodyti didėjimo tvarką kaip asc ir mažėjančia tvarka kaip aprašymas.

Leiskite mums suprasti, kaip veikia sakinys „Pagal užsakymą“, naudojant sekantį pavyzdį. Mes turime „Mokytojų“ lentelę, ir aš rūšiuosiu pagal du „Mokytojo“ lentelės stulpelius „Department_Id“ ir „Alga“.

Pasirinkite Skyrius_ID, Atlyginimas iš mokytojų. Pagal Skyrius_Id., Atlyginimo aprašas.

Galite pamatyti, kad pirmiausia departamentas _ID išdėstomas didėjančia tvarka, o tada atlyginimai tame pačiame skyriuje išdėstomi mažėjančia tvarka.

  1. Grupuoti pagal sakinį grupuoja aibių rinkinį santykyje, kuris yra pagal SELECT sakinį. Kita vertus, sakinys „Užsakymas pagal“ rūšiuoja užklausos rezultatus didėjančia ar mažėjančia tvarka.
  2. Atributas, esantis jungtinėje funkcijoje, negali būti grupėje pagal sakinį, tuo tarpu atributas, esantis jungtinėje funkcijoje, gali būti ten, pagal sakinį pagal tvarką.
  3. Žodžių grupavimas atliekamas remiantis gretutinių atributų reikšmių panašumu. Kita vertus, užsakymas ar rūšiavimas atliekamas pagal kylančią arba mažėjančią tvarką.

Išvada:

Jei norite suformuoti gairių rinkinio grupę, turite naudoti grupę pagal sakinį. Jei norite sutvarkyti atskiro stulpelio arba daugiau nei vieno stulpelio rinkinių duomenis didėjančia ar mažėjančia tvarka, turi būti naudojamas punktas „Order By“.