Grupa PostgreSQL według

Grupa PostgreSQL według
Grupa PostgreSQL według klauzuli jest funkcją używaną do zjednoczenia/łączenia tych wierszy w tabeli, które mają te same dane. Ta klauzula służy głównie do usuwania zduplikowanych danych i utrzymania współbieżności. Ilekroć chcemy obliczyć sumę lub jakikolwiek inny agregat, taki jak AVG, itp., Ta grupa według klauzuli jest zawsze używana, ponieważ w PostgreSQL stosuje się wiele klauzul. Ale między każdą klauzulą ​​istnieje hierarchia.

Od> gdzie> „grupa według”> mając> wybierz> odrębne> zamówienie według> limitu

Działanie PostgreSql leży w klauzuli „gdzie” i „posiadania”.

Składnia

Wybierz kolumnę
Z Dumytable
Gdzie [warunki]
Grupa FirstColumn, SecondColumn…
Zamów według FirstColumn, SecondColumn…;

Przykład 1

Aby zrozumieć koncepcję grupy według funkcji, używamy przykładu tutaj. W tabeli pasażerów widać, że nazwiska są takie same dla niektórych osób. Każda nazwa podobna do innej formy grupy, a ich płatność jest dodawana zbiorowo w stosunku do każdej samej nazwy. Jest to opracowane w poniższym przykładzie.

>> Wybierz LNAME, suma (płatność) z grupy pasażerskiej według LName;

Nazwisko pasażera jest wybrane za pomocą wbudowanej funkcji „suma”, która przyjmuje kolumnę „płatność”. I dodaj płatność dla tych osób o tym samym nazwisku. Na przykład dodano pensję „Javed” i „Saad”. Podczas gdy w przypadku „malik” i „szamów” jest to indywidualnie wspomniane.

Podobnie rozważ tabelę „szpital”. Chcemy grupować miasto na wiek. W tym przykładzie jedno miasto istnieje więcej niż raz w kolumnie. Każde miasto jest pogrupowane z tą samą nazwą miasta. Wiek każdej grupy miasta są dodawane i tworzą jeden rząd.

Szpital:

>> Wybierz miasto, suma (wiek) z grupy szpitalnej według miasta;

Przykład 2

Alternatywnie, jeśli wybierzemy nazwisko z identyfikatorem z pasażera tabeli, wynik będzie inną tabelą. Ponieważ kiedy grupujemy obie kolumny razem, wyświetli nazwę każdego pasażera, ponieważ identyfikator każdego pasażera, nawet o wspólnym nazwisku, jest inny. Suma jest obliczana w osobnej kolumnie, ale płatność każdego pasażera jest wymieniona przed jego nazwą, ponieważ grupowanie LNAME nie jest tutaj wykonane.

To jest przykład grupy według klauzuli z wieloma kolumnami. Ponieważ po wybraniu wielu kolumn do grupowania, wynikowa wartość jest zmieniana w porównaniu z grupą przez pojedynczą tabelę.

>> Wybierz id, LNAME, sumę (płatność) z grupy pasażerskiej według ID, lname;

Z wyjścia zauważysz jedną rzecz, która po pierwsze, wszystkie te lname, które są rzadkie, są wyświetlane, a następnie ci, którzy są tacy sami, są wymienione w tabeli.

Przykład 3

Ten przykład ma warunek połączenia i grupę według klauzuli. W miarę użycia „dołączania” oznacza to, że użyliśmy dwóch tabel tutaj. Jeden to „przedmiot”, a drugi to „zamówienia”.

Rzeczy:

Zamówienia:

Zastosowaliśmy metodę konkatenacji (używaną do połączenia dwóch ciągów), aby dołączyć do wartości dwóch kolumn tabeli „Elementy” z „” i nazwać kolumnę wspólnie jako „Opis”. Jest to opcjonalne; możesz je zabrać osobno. W tym zapytaniu słowo kluczowe „Używanie” identyfikuje określoną kolumnę z drugiej tabeli. Adres z tabeli elementów jest dopasowany do kolumny adresowej tabeli „Zamówienia”. Odbywa się to poprzez połączenie dwóch tabel. Podobnie jak poprzednie przykłady, obie kolumny zostaną wybrane przez grupę według klauzuli.

>> Wybierz nazwę || ',' || kategoria jako opis, adres z elementów wewnętrznych zamówień korzystających z grupy (adresu) według adresu, opis;

Możesz zauważyć, że 5 wierszy zostanie wybranych o adresie elementów dopasowanych do adresu zamówień. A następnie kolumna opisu zostanie utworzona korespondencja z kolumną adresu.

Podobnie istnieje inny przykład połączenia z czynnikiem wieku w dwóch tabelach. Jeden to „pasażer”, a drugi „pracownik”. Konatenacja odbywa się między pierwszym a nazwiskiem. Obie te nazwy są oddzielone przez przestrzeń między dwoma nazwami. Wzięliśmy udział tutaj w stole robotniczym.

Pracownik:

Zapytanie będzie działać, aby punkt, w którym nazwa pracownika była dopasowana do pasażera, wiek pasażera, był wyświetlany w kolumnie wiekowej.

>> Wybierz Fname || "|| pasażer.lname jako full_name, pasażer.Wiek od Passenger Wewnętrzny Połącz Pracownika przy użyciu grupy (FName) według Full_name, pasażer.Zamówienie wieku przez pasażera.wiek;

Powstaje jeden wiersz. Full_name jest tworzona przez połączenie dwóch kolumn z przestrzenią, a adres jest wybierany, w którym nazwa pasażera pasuje do Fname pracownika.

Przykład 4

Ten przykład dotyczy używania funkcji count () do zliczenia identyfikatorów tabeli „elementy”. To znowu grupa według identyfikatora tabeli.

>> Wybierz identyfikator, liczba (id) z grupy elementów według identyfikatora;

Rzędy w kolumnie identyfikują się na grupy. Każda grupa jest liczona w kolumnie, ile razy pojawia się w kolumnie. W wynikającej tabeli tworzono nową kolumnę o nazwie „liczba”, a wartości liczby są zapisane tutaj przed każdą grupą.

Przez pgadmin

Teraz zastosowaliśmy kilka przykładów po stronie deski rozdzielczej PostgreSQL. Te przykłady są różne w pewnym sensie, ponieważ tworzą one subtelny wiersz z oryginalnej kolumny, gdy którykolwiek z elementów różni się od innych, więc wartość jest zwracana jako null.

Rozważ pierwszy przykład; Tutaj utworzyliśmy nazwę kolumny „All”, która połączyła dwie kolumny. Adres i kategoria. Kolumna „cała” liczy wartości w obu kolumnach. Kolumna adresu jest pogrupowana jako „Dodaj”, a kolumna kategorii jest osobno zgrupowana jako „CAT”. Ponieważ nazwy kolumn obu używanych tabel można dopasować do siebie. Tak więc do każdej kolumny odpowiedniej tabeli jest dostępny przez określony obiekt.

Warunek zastosowany na polecenie zależy od identyfikatora i numeru zamówienia. Gdzie zarówno te identyfikatory, jak i numery zamówień są takie same, dane są pobierane. Podobnie dla nazwy dodawany jest również dodatkowy warunek.

>> Wybierz o.adres, kategoria, hrabia (*) jako „all”, grupowanie (o.adres) Jako „dodaj”, grupowanie (kategoria) jako „kot” z przedmiotów I, zamówienia.order_no = o.Order_id i i.Adres = grupa „Lahore” po Cube (o.adres, kategoria) Zamówienie o 1, 2;

Dla miasta Lahore wybrano jedną kategorię. Istnieją 4 możliwości. Czasami zabawka jest obecna, ale nie adres. I wzajemnie. Ale istnieje czas, w którym obecne są zarówno kategoria, jak i adres.

Teraz, jeśli zmienimy warunek nazwy z tabeli i przełącz tabelę na inne. "Rzeczy.adres ”jest zastępowany przez„ zamówienie.adres ”, wówczas wynik jest inny.

Wniosek

Klauzula „Grupa PostgreSQL według” jest wykorzystywana do zastosowania dowolnego agregatora do danych zbiorowych. W tym artykule wykorzystuje grupę według klauzuli z funkcją liczby, łączni oraz wyborem i grupowaniem wielu kolumn. Jestem pewien, że ten samouczek będzie najlepszym środkiem zrozumienia dla czytelników.