introduktion

i den här artikeln lär vi oss att använda aggregate Max-funktionen i våra Postgres SQL-kommandon från flera perspektiv för att få en djupare förståelse. Här kommer vi att diskutera:

  • vad? Ur ett nybörjarperspektiv, vad MAX-funktionen gör?
  • varför? I vilka situationer ska vi använda Max () – funktionen?
  • hur? Hur använder vi den här funktionen i vår SQL?
  • mer vi kommer också att använda gruppen genom konstruktion.

förutsättningar

  • Nybörjarnivå förståelse för att skriva SQL för PostgreSQL (eller Oracle, MySQL, MS SQL Server, etc.) med hjälp av PG Admin tool eller något annat db-administrationsverktyg, eller via kod eller skript/kodningsspråk som PHP, Python, Javascript, Java, C#, ASP.Net, VB.Net Ruby, Node.js, etc.) som ger en databasanslutning, samt en metod för att skicka databasen SQL-frågor, för att få data eller göra ändringar i din databas.
  • förståelse för användningen av vissa grundläggande SQL (PL/SQL) uttalanden, som SELECT, FROM och GROUP BY.
  • kunskap om vad en sträng och funktion är.

vad är MAX () – funktionen och hur fungerar den?

funktionen Postgres MAX() returnerar det högsta (maximala) värdet från en uppsättning tal.

Syntax

1
i_highest_of_set: = MAX(set_of_numbers);

varför och när använder vi funktionen MAX ()?

varje gång du har en uppsättning siffror där du vill veta vilken av den uppsättningen som är högst i uppsättningen.

Låt oss börja med ett enkelt exempel

vi börjar med ett lättförståeligt exempel. Vår första dataset är en tabell som heter coding_languages.

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

på vårt mjukvaruutvecklingsföretag har ovanstående tabell som heter coding_languages tre fält, inklusive:

  • id_tech är vår unika identifierare.
  • t_name är namnet på kodningsspråket.
  • i_rapid_dev är ett heltal utvärdering av hur snabbt en genomsnittlig kodare kan utvecklas med hjälp av språket.

målet är att ta reda på vilket språk som har högsta betyg när det gäller snabb utveckling (i_rapid_dev). Låt oss skriva vårt SQL-skript för att använda funktionen MAX för att hämta t_name som har det högsta värdet i kolumnen i_rapid_dev i vår PostgreSQL-databaspostmängd:

1
2
3
4
5
6
7
8
välj
id_tech
, t_name
, MAX (i_rapid_dev)
från
coding_languages
grupp av
i_rapid_dev;

Anmärkning för SQL-exemplet ovan: Det är här vi använder vår kunskap om SQL-grupper. Du kan tänka på det så här: om du vill hitta maximalt mer än ett nummer måste du överväga en uppsättning siffror.

hur fungerar SQL-satsen ovan? Vi tar det steg för steg:

  • (1) SELECT: vi säger till PostgreSQL SQL-Motor att vi vill ha maximalt av alla värden (eftersom ingen var eller har klausul) i kolumnen i_rapid_dev.
  • (2) FROM: ange tabellen coding_languages för att hämta våra data från.
  • (3) GROUP BY: berätta för Postgres att vi vill gruppera data. Funktionen MAX (), som är en aggregerad funktion, kräver gruppering av våra data.

ovanstående fråga returnerar| / id_tech / t_name / i_rapid_dev||:—:|—|————:| |2 / PHP / 9 /

vi vet nu att PHP är snabbast när det gäller snabb utveckling.

ett annat exempel på att använda ”Max” SQL-funktionen i PostgreSQL

mini-projektet: vi hade anställda Betygsätta de tekniker som används i vårt företag och vill veta den högsta graderade tekniken. Här kommer vi att utforska en annan relativt enkel användning av MAX() medan vi introducerar nyckelordet ”med”. Här är vår ” raw ”dataset med tabellnamnet ”technologies”:

id_tech t_name_user t_name_tech t_category_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

låt oss planera hur vi ska gå vidare. Vi vill bygga en fråga som kommer att göra mer än en sak, inklusive:

  • (1) Tänk bara på raderna i vår dataset där _t_categorytech-fältet (kolumn) är lika med ”Lang”. Det är här HAVING-klausulen är till nytta. Det kommer att ge 3 rader. Kan du se varför? Tips: titta i tabellen ovan för” Lang ” – värdet. Lägg märke till att det finns tre? Vilken kolumn är de i?
  • (2) returnerar värdet i fältet _t_nametech för de 3 raderna eftersom vi vill veta vilken teknik betygen går med.
  • (3) Vi bryr oss inte vem som gjorde bedömningen, så inget omnämnande av kolumnen _t_nameuser.
  • (4) få MAX summan av värdena för de 3 raderna med hjälp av _igrade-kolumnen.
  • (5) använd grupp för att gruppera lämpliga kolumner.

analys av SQL ovan:

  • (1) SELECT: vi filtrerar vårt Postgres-bord till: (a) visa kolumnen t_name_tech, (b) beräkna summan av betyg (Sum(i_grade)) för varje given teknik, och (c) visa maximalt av dessa belopp (Max(i_sum_of_grades)) och namnge resultatet som i_highest_grade.
  • (2) FROM: ange tabellen coding_languages som källa till våra data.
  • (3) GROUP BY: meddela PostgreSQL att vi grupperar. Funktionen MAX kräver att vi grupperar de data som Postgres internt summerar och hittar den högsta av.
  • (4) HAVING: det är här vi instruerar PostgreSQL att filtrera i raderna som har ”Lang” i fältet t_category_tech.

frågan ovan returnerar:

t_name_tech t_category_tech i_grade
PHP Lang 12

anteckningar

  • varför namngav vi några av våra variabler och tabellkolumner med prefixet ”i” eller ”t”? Vi använder ”i ”för att betyda heltal och” t ” för att betyda text eller sträng.
  • vi inbjuder dig att leta efter våra andra artiklar som använder den kraftfulla GROUP BY Postgres-klausulen.

slutsats

här lärde vi oss när och hur det är bäst att använda funktionen MAX() i PostgreSQL för att hitta det högsta värderade numret i en uppsättning siffror. Vi använde både Nybörjarnivå och svårare exempel, uppskalning av svårigheter, för att göra inlärningsprocessen så enkel som möjligt eftersom SQL ibland kan vara svårt att linda huvudet runt, särskilt när du använder GROUP BY och HAVING klausuler för att arbeta med delmängder av data.

Lämna ett svar

Din e-postadress kommer inte publiceras.