wprowadzenie

w tym artykule nauczymy się używać funkcji aggregate Max w naszych poleceniach SQL Postgres z wielu perspektyw, aby uzyskać głębszy poziom zrozumienia. Tutaj omówimy:

  • co? Z perspektywy początkującego, co robi funkcja MAX?
  • dlaczego? W jakich sytuacjach powinniśmy używać funkcji Max ()?
  • jak? Jak korzystać z tej funkcji w naszym SQL?
  • więcej wykorzystamy również grupę przez construct.

wymagania wstępne

  • poziom początkujący zrozumienie pisania SQL dla PostgreSQL (lub Oracle, MySQL, MS SQL Server itp.) za pomocą narzędzia PG Admin tool lub innego narzędzia administracyjnego db, lub za pomocą kodu lub języków skryptowych / kodujących, takich jak PHP, Python, Javascript, Java, C#, ASP.Net, VB.Net, Ruby, Node.js itp.), które zapewniają połączenie z bazą danych, a także metodę wysyłania zapytań SQL bazy danych, aby uzyskać dane lub dokonać zmian w bazie danych.
  • zrozumienie użycia niektórych podstawowych instrukcji SQL (PL / SQL), takich jak SELECT, FROM i GROUP BY.
  • Wiedza o tym, czym jest ciąg i funkcja.

co to jest funkcja MAX() i jak działa?

funkcja Postgres MAX() zwraca najwyższą (maksymalną) wartość ze zbioru liczb.

1
i_highest_of_set: = MAX (set_of_numbers);

dlaczego i kiedy używamy funkcji MAX ()?

za każdym razem, gdy masz zestaw liczb, w którym chcesz wiedzieć, który z tych zestawów jest najwyższy w zbiorze.

zacznijmy od prostego przykładu

zaczniemy od łatwego do zrozumienia przykładu. Nasz początkowy zbiór danych to tabela o nazwie coding_languages.

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

w naszej firmie programistycznej powyższa tabela o nazwie coding_languages ma trzy pola, w tym:

  • id_tech jest naszym unikalnym identyfikatorem.
  • t_name to nazwa języka kodującego.
  • i_rapid_dev to całkowita ocena tego, jak szybko średni koder może rozwijać się za pomocą języka.

celem jest sprawdzenie, który język ma najwyższą ocenę pod względem szybkiego rozwoju (i_rapid_dev). Napiszmy nasz skrypt SQL, aby użyć funkcji MAX, aby pobrać t_name, która ma najwyższą wartość w kolumnie i_rapid_dev w naszym zestawie rekordów bazy danych PostgreSQL:

1
2
3
4
5
6
7
8
SELECT
id_tech
, t_name
, MAX(I_RAPID_DEV)
FROM
coding_languages
GROUP BY
I_RAPID_DEV;

uwaga dla powyższego przykładu SQL: tutaj wykorzystujemy naszą wiedzę o grupach SQL. Możesz myśleć o tym w ten sposób: jeśli chcesz znaleźć maksymalnie więcej niż jedną liczbę, musisz wziąć pod uwagę zbiór liczb.

jak działa powyższa instrukcja SQL? Zrobimy to krok po kroku:

  • (1) SELECT: mówimy silnikowi SQL PostgreSQL, że chcemy maksymalnie wszystkich wartości (ponieważ nie ma klauzuli WHERE lub HAVING) w kolumnie i_rapid_dev.
  • (2) FROM: określenie tabeli coding_languages, z której będziemy pobierać nasze dane.
  • (3) GROUP BY: mówiąc Postgresowi, że chcemy pogrupować dane. Funkcja MAX (), będąca funkcją agregującą, wymaga grupowania naszych danych.

powyższe zapytanie zwraca: / id_tech / t_name / i_rapid_dev||:—:|—|————:| |2 / PHP / 9 /

teraz wiemy, że PHP jest najszybszy pod względem szybkiego rozwoju.

kolejny przykład użycia funkcji ” Max ” SQL w PostgreSQL

mini projekt: mieliśmy pracowników oceniających technologie stosowane w naszej firmie i chcących poznać najwyższej klasy technologię. Tutaj zbadamy inne stosunkowo proste użycie MAX() podczas wprowadzania słowa kluczowego „posiadanie”. Oto nasz” surowy „zbiór danych z nazwą tabeli „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 Susan MySQL RDB 8
3 Tim PostgreSQL RDB 16
4 Gary Python Lang 20
5 Sammy PHP Lang 12

zaplanujmy, jak postępować. Chcemy zbudować zapytanie, które zrobi więcej niż jedną rzecz, w tym:

  • (1) rozważmy tylko wiersze w naszym zbiorze danych, gdzie wartość pola (kolumny) _t_categorytech jest równa „Lang”. Tutaj przydaje się klauzula HAVING. Daje 3 rzędy. Widzisz dlaczego? Wskazówka: poszukaj w powyższej tabeli wartości „Lang”. Zauważ, że są trzy? W której kolumnie są?
  • (2) Zwraca wartość w polu _t_nametech dla tych 3 wierszy, ponieważ chcemy wiedzieć, które technologie są zgodne z klasami.
  • (3) nie obchodzi nas, kto dokonał oceny, więc nie ma wzmianki o kolumnie _t_nameuser.
  • (4) Uzyskaj maksymalną sumę wartości tych 3 wierszy za pomocą kolumny _igrade.
  • (5) Użyj GROUP BY do grupowania odpowiednich kolumn.

Analiza powyższego SQL:

  • (1) SELECT: filtrujemy naszą tabelę Postgres do: (a) Pokaż kolumnę t_name_tech, (b) Oblicz sumę klas (Sum(i_grade)) dla każdej danej technologii i (c) Pokaż maksimum tych sum (Max(i_sum_of_grades)) i nazwij wynik jako i_highest_grade.
  • (2) FROM: podanie tabeli coding_languages jako źródła naszych danych.
  • (3) GROUP BY: Powiadamianie Postgresqla, że grupujemy. Funkcja MAX wymaga od nas grupowania danych, które Postgres wewnętrznie podsumowuje i odnajduje najwyższe z nich.
  • (4) HAVING: tutaj poinstruujemy PostgreSQL, aby filtrował wiersze, które mają „Lang” w polu t_category_tech.

powyższe zapytanie zwraca:

t_name_tech t_category_tech i_grade
PHP Lang 12

uwagi

  • dlaczego nazwaliśmy niektóre z naszych zmiennych i kolumn tabeli przedrostkiem „i” lub „t”? Używamy „i”do liczby całkowitej, A” t ” do tekstu lub ciągu znaków.
  • zapraszamy do zapoznania się z naszymi innymi artykułami, które wykorzystują potężną klauzulę GROUP BY Postgres.

podsumowanie

tutaj dowiedzieliśmy się, kiedy i jak najlepiej jest użyć funkcji MAX() w PostgreSQL, aby znaleźć najwyższą wartość w zbiorze liczb. Wykorzystaliśmy zarówno przykłady na poziomie początkującym, jak i trudniejszym, skalując poziom trudności, aby proces uczenia się był jak najprostszy, ponieważ SQL może czasami być trudny do ogarnięcia, zwłaszcza gdy używasz klauzul GROUP BY i HAVING do pracy z podzbiorami danych.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.