Innledning

i denne artikkelen lærer vi å bruke aggregat Max-funksjonen i Våre POSTGRES SQL-kommandoer fra flere perspektiver, for å få et dypere forståelsesnivå. Her vil vi diskutere:

  • Hva? FRA et nybegynnerperspektiv, hva GJØR MAX-funksjonen?
  • Hvorfor? I hvilke situasjoner skal Vi bruke Max () – funksjonen?
  • hvordan? Hvordan bruker vi denne funksjonen i VÅR SQL?
  • Mer Vi vil også gjøre litt bruk AV GRUPPEN ved å konstruere.

Forutsetninger

  • Nybegynner-nivå forståelse av å skrive SQL For PostgreSQL(Eller Oracle, MySQL, MS SQL Server, etc.) bruk Av Pg Admin-verktøyet eller et annet db-administrasjonsverktøy, eller via kode eller skript/kodingsspråk som PHP, Python, Javascript, Java, C#, ASP.Net, VB.Net Ruby, Node.js, etc.) som gir en databasetilkobling, samt en metode for å sende databasen SQL-spørringer, for å få data eller gjøre endringer i databasen.
  • Forståelse av bruken av noen grunnleggende SQL-setninger (PL / SQL), som SELECT, FROM og GROUP BY.
  • Kunnskap om hva en streng og funksjon er.

HVA ER MAX () – funksjonen og hvordan fungerer DEN?

Funksjonen Postgres MAX() returnerer den høyeste (maksimale) verdien fra et sett med tall.

Syntaks

1
i_highest_of_set: = MAKS (set_of_numbers);

Hvorfor og når bruker VI MAX () – funksjonen?

hver gang du har et sett med tall der du vil vite hvilket av det settet som er høyest i settet.

La oss starte med et enkelt eksempel

vi begynner med et lettforståelig eksempel. Vårt første datasett er et bord som heter coding_languages.

id_tech t_navn i_rapid_dev
0 Python 7
1 Java 5
2 PHP 9
3 Javascript 8

på vårt programvareutviklingsselskap har tabellen ovenfor kalt coding_languages tre felt, inkludert:

  • id_tech er vår unike identifikator.
  • t_name er navnet på kodespråket.
  • i_rapid_dev er en heltallsevaluering av hvor raskt en gjennomsnittlig koder kan utvikle seg ved hjelp av språket.

målet er å finne ut hvilket språk som har høyest karakter når det gjelder rask utvikling (i_rapid_dev). La oss skrive VÅRT SQL-skript for å bruke funksjonen MAX for å hente t_name som har den høyeste verdien i kolonnen i_rapid_dev i PostgreSQL database recordset:

1
2
3
4
5
6
7
8
VELG
id_tech
, t_name
, MAKS(i_rapid_dev)
fra
coding_languages
GRUPPE ETTER
i_rapid_dev;

Merk FOR SQL-eksemplet ovenfor: Det er her vi bruker vår kunnskap om SQL-Grupper. Du kan tenke på det på denne måten: hvis du vil finne maksimalt mer enn ett tall, må du vurdere et sett med tall.

hvordan FUNGERER SQL-setningen ovenfor? Vi tar det trinnvis:

  • (1) SELECT: Vi forteller PostgreSQL ‘ S SQL-motor at vi vil ha maksimalt alle verdier (fordi ingen HVOR eller HAR klausul) i kolonnen i_rapid_dev.
  • (2) FROM: Angi coding_languages tabellen for å hente dataene våre fra.
  • (3) GROUP BY: Forteller Postgres at vi ønsker å gruppere dataene. MAX () – funksjonen, som er en aggregatfunksjon, krever gruppering av dataene våre.

ovennevnte spørring returnerer| / id_tech / t_name | i_rapid_dev||:—:|—|————:| / 2 / PHP / 9 /

VI vet nå AT PHP er den raskeste når det gjelder rask utvikling.

Et annet eksempel på bruk av » Max » SQL-funksjonen I PostgreSQL

mini-prosjektet: vi hadde ansatte gradert teknologiene som ble brukt i vårt firma og vil vite den høyeste graderte teknologien. Her vil vi utforske en annen relativt enkel bruk av MAX() mens vi introduserer» HA » nøkkelordet. Her er vårt» rå «datasett med tabellnavnet «technologies»:

id_tech t_name_user t_name_tech t_kategori_tech i_grade
0 Ted Java Lang 4
1 Bif Mongo NoSQL 16
2 Susan MySQL RDB 8
3 Tim PostgreSQL RDB 16
4 Gary Python Lang 20
5 Sammy PHP LANG 12

la oss planlegge hvordan vi skal fortsette. Vi ønsker å bygge en spørring som vil gjøre mer enn en ting, inkludert:

  • (1) bare vurder radene i datasettet vårt der verdien _t_categorytech-feltet (kolonne) er lik «Lang». Det er her Å ha klausulen kommer til nytte. Det vil gi 3 rader. Kan du se hvorfor? Tips: Se i tabellen over for» Lang » – verdien. Legg merke til at det er tre? Hvilken kolonne er de i?
  • (2) Returner verdien i _t_nametech-feltet for de 3 radene fordi vi vil vite hvilke teknologier karakterene går med.
  • (3) vi bryr oss ikke om hvem som gjorde vurderingen, så ingen omtale av kolonnen _t_nameuser.
  • (4) Få MAKS SUM av verdiene til de 3 radene ved hjelp av _igrade-kolonnen.
  • (5) BRUK GRUPPE ETTER til å gruppere de aktuelle kolonnene.

Analyse av SQL ovenfor:

  • (1) SELECT: vi filtrerer Vår Postgres tabell til: (A) Vis kolonnen t_name_tech, (b) beregn summen av karakterer (Sum(i_grade)) for hver gitt teknologi, og (c) vis maksimum av disse summene (Max(i_sum_of_grades)) og gi resultatet navnet i_highest_grade.
  • (2) FROM: Angi tabellen coding_languages som kilde til dataene våre.
  • (3) GROUP BY: Varsle PostgreSQL at vi er gruppering. Funksjonen MAX krever at Vi grupperer dataene Som Postgres internt oppsummerer og finner det høyeste av.
  • (4) HAVING: Det er her Vi instruerer PostgreSQL å filtrere i radene som har «Lang» i feltet t_category_tech.

spørringen ovenfor returnerer:

t_name_tech t_kategori_tech i_grade
PHP Lang 12

Merknader

  • Hvorfor nevnte vi noen av våre variabler og tabellkolonner med prefikset «i» eller «t»? Vi bruker «i «til å bety heltall og» t » til å bety tekst eller streng.
  • vi inviterer deg til å se etter våre andre artikler som bruker den kraftige GROUP BY Postgres-klausulen .

Konklusjon

her lærte vi når og hvordan det er best å bruke funksjonen MAX() I PostgreSQL for å finne det høyeste verdsatte tallet i et sett med tall. VI brukte både nybegynnernivå og vanskeligere eksempler, skalering opp vanskeligheter, for å gjøre læringsprosessen så enkel som mulig fordi SQL til tider kan være vanskelig å vikle hodet rundt, spesielt når du bruker klausulene GROUP BY og HAVING for å jobbe med delsett av data.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.