Denne opplæringen vil lære deg hvordan du bruker gruppen etter klausul i Oracle -databaser.
Oracle Group etter uttalelse
Gruppen BY -klausul brukes i en valgt uttalelse for å dele resultatene i forskjellige grupper. Klausulen vil deretter returnere en rad per gruppe.
I de fleste tilfeller vil du ofte finne gruppen ved brukt i forbindelse med samlede funksjoner som sum, AVG, Max, etc. I et slikt scenario grupperer klausulene dataene i samsvarende partisjoner, og deretter brukes den samlede funksjonen for hver gruppe.
Vi kan demonstrere syntaks for gruppen BY -ledd vises i utdraget nedenfor:
Velg col_listMerk at gruppen BY -klausulen kommer etter fra -leddet.
I noen tilfeller kan du inkludere hvor leddet for å begrense omfanget av spørringen, som demonstrert i spørringen nedenfor:
Velg col_listRadene blir deretter gruppert basert på forholdene som er spesifisert i uttrykkene. Merk at leddet bare må omfatte grupperingskolonnene.
Imidlertid lar Oracle deg utføre en flernivå -gruppering ved hjelp av rollup -nøkkelordet, som illustrert i utdraget nedenfor:
Velg col_listEksempelbruk
Følgende er et eksempel som brukes til å demonstrere bruken av gruppen etter klausul i Oracle -databaser.
Bruk tilgjengelige data.
Anta at vi har en tabell med informasjonen som vist:
Eksempel 1 - Grunnleggende gruppe etter klausulbruk
Følgende eksempel spørring viser hvordan du bruker gruppen BY -klausul for å gruppere de resulterende radene basert på avdelingen_id.
Velg First_name, Department_id fra Ansatte Group av Department_id, First_name;I dette tilfellet bør uttalelsen bestille resultatene fra spørket data basert på avdelingen_id og de første_navn -kolonnene.
Den resulterende utgangen er som etablert nedenfor:
Eksempel 2 - Bruke gruppe av med en WHERE -klausul
I eksemplet nedenfor skisserer vi et kodebit som viser hvordan du bruker gruppen BY -klausul i forbindelse med en WHERE -klausul.
Velg First_name, Department_id fra ansatte der avdelingen_id> = 100 gruppe av avdelingen_id, første_navn;I dette tilfellet starter uttalelsen med å velge First_name og Department_id -kolonnene fra tabellen. Vi filtrerer deretter ut for bare radene hvis avdelingen_idverdien er større enn eller lik 100.
Til slutt bruker vi gruppen etter klausul som demonstrert av den resulterende tabellen nedenfor:
Eksempel 3 - Bruke gruppen etter klausul med en samlet funksjon
Som sagt kan vi bruke gruppen etter funksjon med en samlet funksjon. Et eksempel på demonstrasjon er gitt nedenfor:
Velg First_Name, Department_ID, Sum (lønn) fra Ansatte Group av Department_id, First_name;Det resulterende tabellen:
Eksempel 3 - Bruke gruppen etter klausul med Rollup
Følgende eksempel viser hvordan du bruker rollup -nøkkelordet for å bestemme kommisjonen for hver ansatt.
Velg Employee_id, Lønn, sum (Commission_PCT * Lønn)Resultater:
Konklusjon
I dette innlegget undersøkte vi bruken av gruppen BY -klausul i Oracle -databaser for å gruppere et sett med rader basert på et gitt uttrykk.