Johdanto

tässä artikkelissa opimme käyttämään aggregate Max-funktiota Postgres SQL-komennoissamme useista näkökulmista, saadaksemme syvemmän ymmärrystason. Täällä me keskustelemme:

  • mitä? Aloittelijan näkökulmasta, mitä MAX-toiminto tekee?
  • miksi? Missä tilanteissa meidän pitäisi käyttää Max () – funktiota?
  • miten? Miten käytämme tätä funktiota SQL: ssämme?
  • enemmän hyödynnämme ryhmää myös rakentamalla.

Edeltävät opinnot

  • aloittelijatason ymmärrys SQL: n kirjoittamisesta PostgreSQL: lle (tai Oracle, MySQL, MS SQL Server jne.) käyttämällä PG Admin työkalu tai jokin muu db hallintatyökalu, tai kautta koodi tai script / koodaus kieliä, kuten PHP, Python, Javascript, Java, C#, ASP.Net, VB.Net Ruby, Node.js jne.) jotka tarjoavat tietokantayhteyden, sekä menetelmän lähettää tietokannan SQL kyselyt, saada tietoja tai tehdä muutoksia tietokantaan.
  • joidenkin SQL: n (PL/SQL) peruslauseiden käytön ymmärtäminen, kuten SELECT, FROM ja GROUP BY.
  • tieto siitä, mitä merkkijono ja funktio ovat.

mikä on max () – funktio ja miten se toimii?

the Postgres MAX() function returns the highest (maximum) value from a set of numbers.

syntaksi

1
i_highest_of_set: = MAX(set_of_numerot);

miksi ja milloin käytämme MAX () – toimintoa?

milloin tahansa on joukko, jossa halutaan tietää, mikä kyseisestä joukosta on joukon korkein.

aloitetaan helpolla esimerkillä

aloitamme helposti ymmärrettävällä esimerkillä. Alkuperäinen tietokokonaisuutemme on taulukko nimeltä coding_languages.

id_tech t_nimi i_rapid_dev
0 Python 7
1 Jaava 5
2 PHP 9
3 Javascript 8

ohjelmistokehitysyhtiössämme yllä olevassa taulukossa coding_languages on kolme kenttää, mm.:

  • id_tech on yksilöllinen tunnisteemme.
  • t_name on koodauskielen nimi.
  • i_rapid_dev on kokonaislukuarvio siitä, kuinka nopeasti keskivertokoodaaja voi kehittyä kielen avulla.

tavoitteena on selvittää, millä kielellä on korkein arvosana nopean kehityksen kannalta (i_rapid_dev). Kirjoitetaanpa SQL-skriptimme käyttäen MAX funktiota hakemaan t_name, jolla on korkein arvo i_rapid_dev – sarakkeessa PostgreSQL-tietokantarekisterissämme:

1
2
3
4
5
6
7
8
valitse
id_tech
, t_nimi
, MAX (i_rapid_dev)
FROM
coding_languages
GROUP BY
i_rapid_dev;

Huomautus SQL esimerkki edellä: tämä on, jos käytämme tietoa SQL ryhmien. Voit ajatella sitä näin: Jos haluat löytää enintään useamman kuin yhden numeron, sinun täytyy harkita joukko numeroita.

miten yllä oleva SQL-lause toimii? Etenemme askel askeleelta.:

  • (1) SELECT: kerromme PostgreSQL: n SQL-moottorille, että haluamme i_rapid_dev – sarakkeeseen maksimin kaikista arvoista (koska ei missä tai jolla on lauseke).
  • (2) FROM: täsmennetään coding_languages – taulukko, josta haemme tietomme.
  • (3) GROUP BY: kerromme Postgresille, että haluamme ryhmitellä tiedot. MAX () – funktio, joka on aggregaattifunktio, edellyttää datamme ryhmittelyä.

yllä oleva kysely palauttaa:/ id_tech | t_name / i_rapid_dev||:—:|—|————:| / 2 | PHP |9 /

tiedämme nyt, että PHP on nopeimmin kehittyvä.

toinen esimerkki ” Max ” SQL-funktion käyttämisestä PostgreSQL

miniprojektissa: meillä oli työntekijöitä arvostelemassa yrityksemme käyttämiä teknologioita ja he halusivat tietää korkeimmalle luokitellun teknologian. Tässä tutustumme toiseen suhteellisen yksinkertaiseen MAX() – sanan käyttöön ja otamme käyttöön avainsanan ”ottaa”. Tässä on meidän ”raaka” aineisto taulukon nimi ”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

suunnitellaan, miten edetään. Haluamme rakentaa kyselyn, joka tekee enemmän kuin yhden asian, mukaan lukien:

  • (1) tarkastellaan vain rivejä tietojoukossamme, jossa _t_categorytech-kentän (sarakkeen) arvo on yhtä suuri kuin ”Lang”. Tämä on, jos ottaa lauseke tulee kätevä. Se tuottaa 3 riviä. Ymmärrätkö miksi? Vihje: Katso yllä olevasta taulukosta ”Lang” – arvo. Huomaatko, että niitä on kolme? Missä kolumnissa he ovat?
  • (2) Palauta arvo _t_nametech-kentässä näille 3 riville, koska haluamme tietää, mitä teknologioita arvosanat käyttävät.
  • (3) emme välitä, kuka arvion on tehnyt, joten _t_nimeyser-saraketta ei mainita.
  • (4) saat enintään näiden 3 rivin arvojen summan käyttämällä _igrade-saraketta.
  • (5) Käytä ryhmä kerrallaan asianmukaisten sarakkeiden ryhmittelyyn.

analyysi SQL edellä:

  • (1) SELECT: suodatamme Postgres-taulukkomme: (a) Näytä t_name_tech sarake, (B) laske arvosanojen summa (Sum(i_grade)) kunkin tietyn teknologian osalta ja (c) Näytä näiden summien enimmäismäärä (Max(i_sum_of_grades)) ja nimeä tulos muodossa i_highest_grade.
  • (2) FROM: tietojen lähteenä on coding_languages – taulukko.
  • (3) GROUP BY: ilmoitamme PostgreSQL: lle, että ryhmitymme. MAX funktio vaatii meitä ryhmittelemään ne tiedot, joista Postgres sisäisesti summaa ja löytää niistä korkeimman.
  • (4) HAVING: tässä neuvotaan PostgreSQL: ää suodattamaan riveillä, joilla t_category_tech – kentässä on ”Lang”.

yllä oleva kysely palauttaa:

t_name_tech t_category_tech i_grade
PHP Lang 12

huomautukset

  • miksi nimesimme joitakin muuttujiamme ja taulukkosarakkeita, joiden etuliite on” i ”tai”t”? ”I ”tarkoittaa kokonaislukua ja” t ” tekstiä tai merkkijonoa.
  • kehotamme sinua etsimään muita artikkeleitamme, jotka hyödyntävät voimakasta GROUP BY Postgres-lauseketta.

johtopäätös

tässä opimme, milloin ja miten PostgreSQL: ssä on parasta käyttää MAX() – funktiota, jotta lukujoukosta löytyisi arvokkain luku. Käytimme sekä aloittelijatason että vaikeampia esimerkkejä, vaikeuksien skaalaamista, jotta oppimisprosessi olisi mahdollisimman helppo, koska SQL-lausekkeita voi toisinaan olla vaikea kietoa pään ympärille, varsinkin kun käytät GROUP BY ja HAVING lausekkeita toimiaksesi osajoukkojen kanssa.

Vastaa

Sähköpostiosoitettasi ei julkaista.