PostgreSQL -partisjon ved eksempel

PostgreSQL -partisjon ved eksempel

"Partisjonen etter" -bestemmelsen eller funksjonen til PostgreSQL tilhører kategorien vindusfunksjoner. Vindusfunksjonene til PostgreSQL er de som er i stand til å utføre beregninger som spenner over flere rader i en kolonne, men ikke alle radene. Det betyr at i motsetning til de samlede funksjonene til PostgreSQL, produserer Windows -funksjonene ikke nødvendigvis en enkelt verdi som utgang. I dag ønsker vi å utforske bruken av "partisjonen etter" -bestemmelsen eller funksjonen til PostgreSQL i Windows 10.

PostgreSQL -partisjon etter eksempler i Windows 10:

Denne funksjonen viser utdataene i form av partisjoner eller kategorier med hensyn til den spesifiserte attributtet. Denne funksjonen tar ganske enkelt en av attributtene til PostgreSQL -tabellen som en inngang fra brukeren og viser deretter utgangen deretter. Imidlertid er "partisjon etter" -bestemmelsen eller funksjonen til PostgreSQL den mest egnet for store datasett og ikke for de der du ikke kan identifisere distinkte partisjoner eller kategorier. Du må gå gjennom de to eksemplene som er diskutert nedenfor for å forstå bruken av denne funksjonen på en bedre måte.

Eksempel nr. 1: Å trekke ut den gjennomsnittlige kroppstemperaturen fra pasientenes data:

For akkurat dette eksemplet er vårt mål å finne ut den gjennomsnittlige kroppstemperaturen til pasientene fra "pasient" -tabellen. Du lurer kanskje. Vel, vår "pasient" -tabell består også av en kolonne som heter "doc_id" som er der for å spesifisere hvilken lege som behandlet en bestemt pasient. Når det gjelder dette eksemplet, er vi interessert i å se de gjennomsnittlige kroppstemperaturene til pasientene som er behandlet av hver lege.

Dette gjennomsnittet vil være annerledes for hver lege siden de ivaretok forskjellige pasienter som har forskjellige kroppstemperaturer. Det er grunnen til at bruken av "Partition by" -klausulen er obligatorisk i denne situasjonen. Dessuten skal vi bruke et allerede eksisterende bord for å demonstrere dette eksemplet. Du kan også opprette en ny hvis du vil. Du vil kunne forstå dette eksemplet godt ved å gå gjennom følgende trinn:

Trinn 1: Viser dataene som pasienttabellen har:

Siden vi allerede har uttalt at vi skal bruke et allerede eksisterende tabell for dette eksemplet, vil vi prøve å vise dataene først slik at du kan ta en titt på attributtene som denne tabellen har. For det vil vi utføre spørringen vist nedenfor:

# Velg * fra pasient;

Du kan se fra følgende bilde at "pasient" -tabellen har fire attributter, i.e., PAT_ID (refererer til pasient -IDen), Pat_name (holder navnet på pasienten), Pat_temp (refererer til kroppstemperaturen til pasienten), og DOC_ID (refererer til legens ID som behandlet en bestemt pasient).

Trinn 2: Å trekke ut den gjennomsnittlige kroppstemperaturen til pasienter med hensyn til legen som ivaretok dem:

For å finne ut den gjennomsnittlige kroppstemperaturen til pasienter som er delt inn av legen som ivaretok dem, vil vi utføre spørringen som er angitt nedenfor:

# Velg Pat_ID, Pat_name, Pat_Temp, Doc_id, AVG (Pat_Temp) over (partisjon av doc_id) fra pasient;

Denne spørringen vil beregne gjennomsnittet av pasientenes temperatur angående legen som ivaretar dem og viser den bare sammen med de andre attributtene på konsollen som vist i følgende bilde:

Siden vi hadde fem forskjellige lege -ID -er, klarte vi å beregne gjennomsnittet av fem forskjellige partisjoner gjennom denne spørringen, i.e., 99.5, 99, 101.5, 99.5 og 105.5, henholdsvis.

Eksempel nr. 2: Å trekke ut gjennomsnittlig, minimum og maksimale priser som tilhører hver tallerkentype fra måltidsdata:

I dette eksemplet ønsker vi å finne ut gjennomsnittlig, minimums- og maksimumspriser på hver tallerken med hensyn til paraboletypen fra "måltid" -bordet. Igjen vil vi bruke et allerede eksisterende bord for å demonstrere dette eksemplet; Imidlertid står du fritt til å lage et nytt bord hvis du vil. Du vil få en klarere ide om hva vi snakker om etter å ha gått gjennom trinnene som er nevnt nedenfor:

Trinn 1: Se dataene som måltidstabellen har:

Siden vi allerede har uttalt at vi skal bruke et allerede eksisterende tabell for dette eksemplet, vil vi prøve å vise dataene først slik at du kan ta en titt på attributtene som denne tabellen har. For det vil vi utføre spørringen vist nedenfor:

# Velg * fra måltid;

Du kan se fra følgende bilde at "måltid" -bordet har tre attributter, i.e., Oppvasknavn (refererer til navnet på retten), DISH_TYPE (har den typen som retten tilhører, i.e., Hovedrett, startpakke, eller dessert), og Dish_Price (refererer til prisen på retten).

Trinn 2: Å trekke ut den gjennomsnittlige oppvaskprisen på parabolen med hensyn til parabolen den tilhører:

For å finne ut den gjennomsnittlige tallerkenprisen på parabolen som er delt ut av parabolet som den hører hjemme, vil vi utføre spørringen som er angitt nedenfor:

# Velg DISCE_NAME, DISCE_TYPE, DISCE_PRICE, AVG (DISCE_PRICE) OVER (PARTITION BY DISH_TYPE) fra måltidet;

Denne spørringen vil beregne gjennomsnittsprisen på oppvasken med hensyn til retten som de tilhører, og deretter bare vise den sammen med de andre attributtene på konsollen som vist i følgende bilde:

Siden vi hadde tre forskjellige tallerkener, klarte vi å beregne gjennomsnittet av tre forskjellige partisjoner gjennom denne spørringen, i.e., 155, 241.67, og 261.67, henholdsvis.

Trinn 3: Å trekke ut minimumsdiskprisen på parabolen med hensyn til retten den tilhører:

Nå, på lignende grunnlag, kan vi hente ut minimumsdiskprisen med hensyn til hver rettens type bare ved å utføre spørringen som er angitt nedenfor:

# Velg DISCE_NAME, DISCE_TYPE, DISCE_PRICE, MIN (DISCE_PRICE) OVER (PARTITION BY DISH_TYPE) fra måltidet;

Denne spørringen vil beregne minimumsprisen på oppvasken med hensyn til retten som de tilhører, og deretter bare vise den sammen med de andre attributtene på konsollen som vist i følgende bilde:

Trinn 4: Å trekke ut maksimal fatekurs på retten med hensyn til retten den tilhører:

Til slutt, på samme måte, kan vi hente ut den maksimale tallerkenprisen med hensyn til hver rettens type bare ved å utføre spørringen som er angitt nedenfor:

# Velg DISH_NAME, DISCE_TYPE, DISCE_PRICE, MAX (DISCE_PRICE) OVER (PARTITION BY DISH_TYPE) fra måltidet;

Denne spørringen vil beregne maksimal pris på oppvasken med hensyn til retten som de tilhører, og deretter bare vise den sammen med de andre attributtene på konsollen som vist i følgende bilde:

Konklusjon:

Denne artikkelen var ment å gi deg en oversikt over bruken av PostgreSQL “Partition by” -funksjon. For å gjøre det introduserte vi deg først for PostgreSQL -vindusfunksjonene, etterfulgt av en kort beskrivelse av "Partisjonen etter" -funksjonen. Til slutt, for å utdype bruken av denne funksjonen i PostgreSQL i Windows 10, presenterte vi deg to forskjellige eksempler ved hjelp av at du enkelt kan lære bruken av denne PostgreSQL -funksjonen i Windows 10.