Oracle Group av

Oracle Group av
Du må spørre om informasjon fra forskjellige tabeller eller forhold når du jobber med relasjonsdatabaser. Du trenger da å trenge å kombinere resultatene til et gitt sett for bruk av applikasjonen.En av de mest verdifulle klausulene når du spør av informasjon om tabell er gruppen etter klausul. Det lar deg gruppere radene med et gitt resultat i et sett med verdier basert på en gitt tilstand. Dette gjør det enkelt å skille relatert informasjon i et gitt sett.For eksempel kan du bruke gruppen BY -klausul for å dele opp arbeidstakerinformasjonen basert på avdelingen deres.

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_list
Fra tabellnavn
Gruppe av Expression_1, Expression_2, ... Expression_n;

Merk 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_list
Fra tabellnavn
Hvor tilstand
Gruppe av Expression_1, Expression_2, ... Expression_n;

Radene 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_list
Fra tabellnavn
Gruppe etter rulling (Expression_1, Expression_2, ... Expression_n);

Eksempelbruk

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)
Fra ansatte
Hvor kommisjon_pct> = 0
Gruppe etter rollup (ansatt_id, 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.