Úvod

v tomto článku se naučíme používat funkci aggregate Max v našich příkazech Postgres SQL z více perspektiv, abychom získali hlubší úroveň porozumění. Zde budeme diskutovat:

  • co? Z pohledu začátečníka, co dělá funkce MAX?
  • proč? V jakých situacích bychom měli použít funkci Max ()?
  • jak? Jak tuto funkci používáme v našem SQL?
  • více budeme také některé využití skupiny konstruktem.

předpoklady

  • začátečník-level porozumění psaní SQL pro PostgreSQL (nebo Oracle, MySQL, MS SQL Server, atd.) pomocí nástroje PG Admin nebo jiného nástroje pro správu db, nebo pomocí kódu nebo skriptu/kódovacích jazyků, jako je PHP, Python, Javascript, Java, C#, ASP.Net, VB.Net, Ruby, Node.js, atd.), které poskytují připojení k databázi, stejně jako způsob odesílání dotazů SQL databáze, získávání dat nebo provádění změn v databázi.
  • pochopení použití některých základních příkazů SQL (PL / SQL), jako SELECT, FROM a GROUP BY.
  • znalost toho, co je řetězec a funkce.

co je funkce MAX () a jak funguje?

funkce Postgres MAX() vrací nejvyšší (maximální) hodnotu ze sady čísel.

syntaxe

1
i_highest_of_set: = MAX (set_of_numbers);

proč a kdy používáme funkci MAX ()?

kdykoli máte sadu čísel, kde chcete vědět, která z těchto množin je nejvyšší v sadě.

začněme snadným příkladem

začneme snadno srozumitelným příkladem. Naše počáteční datová sada je tabulka s názvem coding_languages.

id_tech t_name i_rapid_dev
0 Krajta 7
1 Jáva 5
2 PHP 9
3 Javascript 8

v naší společnosti pro vývoj softwaru má výše uvedená tabulka s názvem coding_languages tři pole, včetně:

  • id_tech je náš jedinečný identifikátor.
  • t_name je název kódovacího jazyka.
  • i_rapid_dev je celočíselné hodnocení toho, jak rychle se průměrný kodér může vyvíjet pomocí jazyka.

cílem je zjistit, který jazyk má nejvyšší hodnocení z hlediska rychlého vývoje (i_rapid_dev). Pojďme napsat náš SQL skript, abychom použili funkci MAX k načtení t_name, která má nejvyšší hodnotu ve sloupci i_rapid_dev v naší databázi PostgreSQL:

1
2
3
4
5
6
7
8
vyberte
id_tech
, t_name
, MAX (i_rapid_dev)
z
coding_languages
skupina podle
i_rapid_dev;

Poznámka pro výše uvedený příklad SQL: zde používáme naše znalosti skupin SQL. Můžete o tom přemýšlet takto: Pokud chcete najít maximum více než jednoho čísla, musíte zvážit sadu čísel.

jak funguje výše uvedený příkaz SQL? Vezmeme to krok za krokem:

  • (1) SELECT: říkáme PostgreSQL SQL engine, že chceme maximálně všech hodnot (protože ne KDE nebo mít klauzuli) ve sloupci i_rapid_dev.
  • (2) FROM: zadání tabulky coding_languages pro načtení našich dat.
  • (3) GROUP BY: říkat Postgres, že chceme seskupit data. Funkce MAX (), která je souhrnnou funkcí, vyžaduje seskupení našich dat.

výše uvedený dotaz vrací: / id_tech | t_name / i_rapid_dev||:—:|—|————:| | 2 |PHP / 9 /

nyní víme, že PHP je nejrychlejší z hlediska rychlého vývoje.

další příklad použití funkce“ Max “ SQL v PostgreSQL

projekt mini: nechali jsme zaměstnance ohodnotit technologie používané v naší společnosti a chtěli znát technologii s nejvyšším stupněm. Zde prozkoumáme další relativně jednoduché použití MAX() při zavádění klíčového slova „mít“. Zde je náš“ surový „datový soubor s názvem tabulky“technologie“:

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

pojďme si naplánovat, jak postupovat. Chceme vytvořit dotaz, který bude dělat více než jednu věc, včetně:

  • (1) zvažte pouze řádky v naší datové sadě, kde hodnota pole _t_categorytech (sloupec) se rovná „Lang“. To je místo, kde má klauzule přijde vhod. Získá 3 řádky. Vidíš proč? Tip: v tabulce výše vyhledejte hodnotu“ Lang“. Všimněte si, že jsou tři? Ve kterém sloupci jsou?
  • (2) vraťte hodnotu v poli _t_nametech pro tyto 3 řádky, protože chceme vědět, s jakými technologiemi se stupně používají.
  • (3) Je nám jedno, kdo provedl hodnocení, takže žádná zmínka o sloupci _t_nameuser.
  • (4) Získejte maximální součet hodnot těchto 3 řádků pomocí sloupce _igrade.
  • (5) pro seskupení příslušných sloupců použijte skupinu BY.

analýza SQL výše:

  • (1) SELECT: filtrujeme naši tabulku Postgres na: (a) zobrazit sloupec t_name_tech, (b)vypočítat součet stupňů (Sum(i_grade)) pro každou danou technologii a (c) Zobrazit maximum těchto částek (Max(i_sum_of_grades)) a pojmenovat výsledek jako i_highest_grade.
  • (2) FROM: zadání tabulky coding_languages jako zdroje našich dat.
  • (3) GROUP BY: oznámení PostgreSQL, že seskupujeme. Funkce MAX vyžaduje, abychom seskupili data, která Postgres interně shrnuje a najde nejvyšší.
  • (4) HAVING: to je místo, kde jsme pokyn PostgreSQL filtrovat v řádcích, které mají „Lang“ v poli t_category_tech.

výše uvedený dotaz se vrací:

t_name_tech t_category_tech i_grade
PHP Lang 12

poznámky

  • proč jsme pojmenovali některé z našich proměnných a sloupců tabulky s předponou “ i „nebo “ t“? Používáme “ i „znamená celé číslo a“ t “ znamená text nebo řetězec.
  • zveme vás, abyste se podívali na naše další články, které využívají výkonnou klauzuli postgres GROUP BY .

závěr

zde jsme se dozvěděli, kdy a jak je nejlepší použít funkci MAX() v PostgreSQL k nalezení Nejvyššího hodnotového čísla v sadě čísel. Použili jsme jak začátečníky, tak obtížnější příklady, zvětšování obtížnosti, aby byl proces učení co nejjednodušší, protože SQL může být občas obtížné zabalit hlavu kolem, zvláště když používáte klauzule GROUP BY a HAVING pro práci s podmnožinami dat.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.