introduktion

i denne artikel lærer vi at bruge den samlede maksimale funktion i vores Postgres-kommandoer fra flere perspektiver for at få et dybere forståelsesniveau. Her vil vi diskutere:

  • hvad? Fra et begynderperspektiv, hvad den maksimale funktion gør?
  • hvorfor? I hvilke situationer skal vi bruge funktionen maks ()?
  • hvordan? Hvordan bruger vi denne funktion i vores CCL?
  • mere vi vil også gøre brug af gruppen ved konstruktion.

forudsætninger

  • begynderniveau forståelse af skrivning til postgres.) ved hjælp af PG Admin værktøj eller nogle andre db administration værktøj, eller ved via kode eller script/kodning sprog som PHP, Python, Javascript, Java, C#, ASP.Net, VB.Net Ruby, Node.js osv.), der giver en databaseforbindelse, samt en metode til at sende databaseforespørgsler, for at hente data eller foretage ændringer i din database.
  • forståelse af brugen af nogle grundlæggende udsagn, som SELECT, FROM og GROUP BY.
  • viden om, hvad en streng og funktion er.

hvad er den maksimale() funktion og hvordan virker den?

funktionen Postgres MAX() returnerer den højeste (maksimale) værdi fra et sæt tal.

syntaks

1
i_highest_of_set: = maks(set_of_numbers);

hvorfor og hvornår bruger vi maks () – funktionen?

hver gang du har et sæt tal, hvor du vil vide, hvilket af det sæt der er det højeste i sæt.

lad os starte med et let eksempel

vi begynder med et letforståeligt eksempel. Vores oprindelige datasæt er en tabel kaldet coding_languages.

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

hos vores programudviklingsselskab har ovenstående tabel coding_languages tre felter, herunder:

  • id_tech er vores unikke identifikator.
  • t_name er navnet på kodningssproget.
  • i_rapid_dev er en heltalsevaluering af, hvor hurtigt en gennemsnitlig koder kan udvikle sig ved hjælp af sproget.

målet er at finde ud af, hvilket sprog der har den højeste rating med hensyn til hurtig udvikling (i_rapid_dev). Lad os skrive vores script for at bruge funktionen MAX til at hente t_name, der har den højeste værdi i kolonnen i_rapid_dev i vores postgraduate database recordset:

1
2
3
4
5
6
7
8
vælg
id_tech
, t_name
, maks (i_rapid_dev)
fra
coding_languages
gruppe af
i_rapid_dev;

Bemærk til eksemplet ovenfor: det er her, vi bruger vores viden om grupper. Du kan tænke på det på denne måde: hvis du vil finde maksimalt mere end et tal, skal du overveje et sæt tal.

hvordan fungerer ovenstående erklæring? Vi tager det trin for trin:

  • (1) SELECT: vi fortæller os, at vi ønsker maksimalt alle værdier (fordi ingen hvor eller har klausul) i kolonnen i_rapid_dev.
  • (2) FROM: angivelse af coding_languages tabellen for at hente vores data fra.
  • (3) GROUP BY: fortæller Postgres, at vi vil gruppere dataene. Den maksimale () funktion, der er en aggregeringsfunktion, kræver gruppering af vores data.

ovenstående forespørgsel returnerer| / id_tech | t_name / i_rapid_dev||:—:|—|————:| | 2 |PHP / 9 /

vi ved nu, at PHP er den hurtigste med hensyn til hurtig udvikling.

et andet eksempel på at bruge funktionen “maks” i postgraduate

mini-projektet: vi havde medarbejdere, der klassificerede de teknologier, der blev brugt i vores virksomhed, og ønsker at kende den højest klassificerede teknologi. Her vil vi undersøge en anden relativt enkel brug af MAX(), mens vi introducerer nøgleordet “at have”. Her er vores ” rå “datasæt med tabelnavnet “teknologier”:

id_tech t_name_user t_name_tech t_category_tech i_grade
0 Ted Java Lang 4
1 Bif Mongo Noskl 16
2 Susan Myskl RDB 8
3 Tim Postnummer RDB 16
4 Gary Python Lang 20
5 Sammy PHP Lang 12

lad os planlægge, hvordan vi fortsætter. Vi ønsker at opbygge en forespørgsel, der vil gøre mere end en ting, herunder:

  • (1) overvej kun rækkerne i vores datasæt, hvor værdien _t_categorytech-feltet (kolonne) er lig med “Lang”. Det er her, at have klausul kommer i handy. Det giver 3 rækker. Kan du se hvorfor? Tip: se i tabellen ovenfor for” Lang ” – værdien. Bemærk, at der er tre? Hvilken kolonne er de i?
  • (2) returner værdien i feltet _t_nametech for de 3 rækker, fordi vi vil vide, hvilke teknologier karaktererne går med.
  • (3) Vi er ligeglade med, hvem der har foretaget vurderingen, så ingen omtale af kolonnen _t_nameuser.
  • (4) Få maksimalt summen af værdierne for de 3 rækker ved hjælp af kolonnen _igrade.
  • (5) Brug GROUP BY til at gruppere de relevante kolonner.

analyse af KVL ovenfor:

  • (1) SELECT: vi filtrerer vores Postgres-tabel til: (a) vis kolonnen t_name_tech, (b) Beregn summen af karakterer (Sum(i_grade)) for hver given teknologi, og (c) vis det maksimale af disse beløb (Max(i_sum_of_grades)) og navngiv resultatet som i_highest_grade.
  • (2) FROM: angivelse af coding_languages tabellen som kilde til vores data.
  • (3) GROUP BY: meddelelse om, at vi grupperer. Funktionen MAX kræver, at vi grupperer de data, som Postgres internt opsummerer og finder det højeste af.
  • (4) HAVING: det er her, vi instruerer Postgraduate til at filtrere i de rækker, der har “Lang” i feltet t_category_tech.

forespørgslen ovenfor vender tilbage:

t_name_tech t_category_tech i_grade
PHP Lang 12

noter

  • hvorfor navngav vi nogle af vores variabler og tabelkolonner med et præfiks “i” eller “t”? Vi bruger “i “til at betyde heltal og” t ” til at betyde tekst eller streng.
  • vi inviterer dig til at kigge efter vores andre artikler, der udnytter den magtfulde GROUP BY Postgres klausul.

konklusion

her lærte vi, hvornår og hvordan det er bedst at bruge funktionen MAX() i Postgreskl for at finde det højest værdsatte tal i et sæt tal. Vi brugte både begynderniveau og sværere eksempler, opskalering af vanskeligheder for at gøre læringsprocessen så let som muligt, fordi KVL til tider kan være svært at pakke dit hoved rundt, især når du bruger GROUP BY og HAVING klausulerne til at arbejde med delmængder af data.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.