PostgreSQL grupperingssett

PostgreSQL grupperingssett
I denne artikkelen vil konseptet med grupperingssett bli diskutert i Postgres. Når vi bruker en tabell med flere kolonner i databasen vår, representerer de forskjellige kolonnene forskjellige databaseattributter, og noen ganger er de vanskelige å forstå. Så dette problemet adresseres ved å bruke grupperingssettene, der vi grupperer flere relevante kolonner som vi krever for utgangen eller for å samle en sum for den resulterende utgangen. Dette bidrar til å redusere de mange spørsmålene vi må kjøre for å få samme produksjon.

Grupperingssett i SQL

Som diskutert ovenfor, lar SQL oss gruppere kolonner for å gi kompilerte utganger i radene i databasetabellen vår. Når vi bruker tabeller i databasen vår, fokuserer vi på verdiene for å ha en bedre forståelse. Likevel gjør dataens kompleksitet og skalerbarhet det som gjør det vanskelig for oss å analysere dataene. Det er her konseptet med grupperingssett kommer godt med, hvor vi forenkler kolonnene i henhold til våre behov og deretter analyserer de forenklede dataene med letthet.

Konseptet med grupperingssett oppnås av kommandoen “Group by” og “Grouping Sets”. Selv om “Union All” -kommandoen i SQL kan gjøre den samme oppgaven, krever det mange subkrakterier. Det pålegger ulike begrensninger, noe. Kommandoen "Union All" krever det nøyaktige antall attributter med identiske datatyper for hver kolonne, så vi må skrive "null" i hver slik tilstand i koden vår, noe som øker antall spørringslinjer.

I nyere oppdateringer av dette språket blir "Group by" -kommandoen fulgt av “Grouping Sets” -kommandoen, som ikke krever flere underforhold som Union All Command og Groups settet i en forenklet form. For å implementere dette konseptet, må vi følge den generelle syntaksen som er skrevet nedenfor:

PLUKKE UT
First_column,
Second_column,
Aggregate_Function (Third_Column)
FRA
Name_of_the_table
GRUPPE AV
Grupperingssett (
(First_column, Second_Column),
(First_column),
(Second_column),
()
);

Vi brukte flere kommandoer i forrige syntaks:

  • Den første er "Select", der vi velger kolonnene for å beregne og motta resultatet og den samlede funksjonen for beregning og vise utdata i den siste kolonnen. Den samlede funksjonen er en enkel metode for å samle tall i hver rad i de to kolonnene: sum, AVG, Min og MAX.
  • For det andre indikerer "fra" -kommandoen navnet på tabellen i vår database som vi bruker for å samle utganger. Etter det brukes "gruppe etter" -kommandoen der det er en indikasjon på hvordan vi vil at kolonnene skal samles, og rekkefølgen på utgangen er også definert i samme uttrykk.

Grupperingssett i PostgreSQL

Siden vi er kjent med syntaksen i grupperingssett nå, kan vi se nærmere på flere eksempler for å ha god kunnskap om å implementere dette konseptet i PostgreSQL. Vi kan utføre gruppering med:

  • To kolonner i en tabell
  • Tre kolonner i en tabell
  • Bestill etter kommando

Gruppere to kolonner i en tabell

Dette eksemplet vil referere til et enklere grupperingssett med bare to kolonner. Vi vil først lage en tabell som heter poster med attributter, for eksempel rullenummer, kursen og merker, og med hjelp av den gitte koden i følgende utdrag:

Etter å ha opprettet en tabell, vil vi sette inn noen dataverdier i radene med forskjellige kolonner som vi vil samle i kommandoen for videre grupperingssett:

Nå vil vi skrive følgende kommandoer som bistår i grupperingssettene i SQL. Studentens rullenummer vil bli gruppert etter summen av alle merkene i alle kursene:

Når vi utfører den forrige koden, får vi følgende utdata:

Som produksjonen antyder, er alle radene gruppert angående summen av alle kursens merker. Summen av alle merkene vises mot det samme rulletallet. Vi kan utføre denne funksjonen selv med mer enn ett rulletall, da det vil gruppere det samme rulletallet av studentens merker i den andre kolonnen mot det gitte rulletallet.

Gruppere tre kolonner i en tabell

I dette eksemplet vil vi lage en tabell i vår database med 4 forskjellige kolonner og bruke grupperingssettkonseptet på tabellen. Først må vi utføre følgende kode for å opprette en tabell.

Deretter vil vi sette inn et sett med verdier for to forskjellige studenter for flere kurs, timene som kreves for kurset, og deretter merkene på det kurset.

Etter å ha utført og lagt til de forrige dataene, vil vi flytte til gruppering av disse dataene om rullenummeret til studenten og navnet på kurset. For å gjøre det, vil vi skrive og utføre koden i følgende utdrag:

Utgangen fra den forrige koden vises i følgende bilde:

Som du kan se, har vi forenklet den komplekse tabellen til en forenklet og ønsket en ved å gruppere den i rulletall og kursnavn og legge til merkene i tilfelle repetisjon. Dette skjedde i rullenummeret “205”, hvis matematikkmerker ble lagt til to ganger siden de ble gjentatt.

Vi kan også gruppere de tidligere kolonnene med bare kursnavnet og få summen av merkene på hvert kurs. For det vil vi skrive følgende spørsmål og deretter utføre det:

I denne spørringen grupperte vi bare kolonnen "Kursnavn", og "Marks" -kolonnen ble gruppert av "Sum" -samlingsfunksjonen. Når denne spørringen er utført, vil utdataene være slik:

Resultatet viser en mer raffinert oversikt over tabellen, og dette peker på det faktum at konseptet med grupperingssett gir oss en veldig forenklet versjon av tabellen for å hjelpe oss i vår analyse.

Grupperingssett med “Order by” -kommandoen

Vi kan lage sett med kolonnene og få ønsket forenklet versjon av tabellen, men noen ganger virker det fortsatt desorientert. Så vi kan ytterligere forenkle dette ved å bruke “Order by” -kommandoen, som vil prioritere attributtet i henhold til vår spesifikasjon. Etter “Group by” -kommandoen vil denne kommandoen bli utført. For bedre å forstå “orden med” kommandoen med grupperingssett, vil vi bruke det forrige eksemplet for å bruke det. Da vi vellykket grupperte kolonnene i tabellen i det siste eksemplet, vil vi bestille det med kursnavnet og karakteren.

I denne spørringen har vi plassert utdataene til å være i alfabetisk rekkefølge på kursnavnene som utdataene som vist nedenfor:

Vi kan også bestille utdataene i synkende rekkefølge av merkene ved å skrive denne spørringen:

Konklusjon

I denne opplæringen lærte vi om konseptet med grupperingssett i SQL. Fordelen med å bruke “Group by” -kommandoen over “Union All” -kommandoen ble også diskutert i denne artikkelen. Etter det implementerte vi også dette konseptet med grupperingssett i PostgreSQL -miljøet som fikk oss til å ha en bedre kunnskap om dette viktige konseptet i det strukturerte spørringsspråket. Til slutt så vi på forskjellige måter å implementere dette konseptet ved å endre noen faktorer og til og med forsterke datasettene for å overvåke utgangseffektiviteten. Vi håper du fant denne artikkelen nyttig. Sjekk ut andre Linux -hint -artikler for flere tips og informasjon.