WYRÓŻNIONY w PostgreSQL: Wybierz, zamów według i ogranicz (przykłady)

⚡ Inteligentne podsumowanie

WYRÓŻNIONY w PostgreSQL jest używany z instrukcją SELECT w celu usunięcia zduplikowanych wierszy i zwrócenia tylko unikatowych wartości. Obejmuje składnię instrukcji SELECT, powłokę SQL i pgAdmin, instrukcję DISTINCT dla jednej i wielu kolumn oraz porównanie instrukcji DISTINCT z instrukcją GROUP BY.

  • 🔎 WYBIERZ: Pobierz kolumny z tabeli za pomocą polecenia SELECT column FROM table.
  • 🧹 ODRĘBNY: Usuń zduplikowane wiersze i zachowaj jeden wiersz dla każdej unikalnej wartości.
  • ↕️ ZAMÓW PRZEZ: Sortuj domyślnie rosnąco lub malejąco według opcji DESC.
  • 🔢 LIMIT: Ogranicz liczbę rekordów zwracanych przez zapytanie.
  • 🖥️. Narzędzia: Uruchom te same zapytania w powłoce SQL Shell lub pgAdmin.

WYRÓŻNIONY w PostgreSQL

Możesz pobrać dane z tabeli za pomocą instrukcji SELECT.

Składnia:

SELECT [column names] FROM [table_name]

Tutaj,

  • nazwy kolumn: Nazwy kolumn, których wartości chcesz pobrać.
  • Z: Klauzula FROM definiuje jedną lub więcej tabel źródłowych dla instrukcji SELECT.
  • Nazwa tabeli: Nazwa istniejącej tabeli, w której chcesz wykonać zapytanie.

Co jest DISTINCT w PostgreSQL?

DISTINCT klauzula w PostgreSQL jest używany z instrukcją SELECT w celu usunięcia zduplikowanych wierszy z zestawu wyników. Gdy kolumna zawiera powtarzające się wartości, SELECT DISTINCT zwraca tylko unikatowe wartości, zachowującping Pojedynczy wiersz dla każdej grupy duplikatów. Jest to przydatne, gdy potrzebujesz listy odrębnych wpisów, takich jak unikalne miasta klientów lub kategorie produktów, bez powtórzeń.

DISTINCT ocenia wszystkie kolumny wymienione w poleceniu SELECT, aby zdecydować, czy wiersz jest unikatowy. PostgreSQL Oferuje również funkcję DISTINCT ON, która zwraca pierwszy wiersz dla każdej odrębnej wartości określonego wyrażenia. Możesz połączyć funkcję DISTINCT z ORDER BY, aby kontrolować, które wiersze się pojawią, oraz z LIMIT, aby ograniczyć liczbę wyników.

PostgreSQL Wybierz opcję Instrukcja w powłoce SQL

Krok 1) Mamy tabelę „tutorials” z dwiema kolumnami: „id” i „tutorial_name”. Wykonajmy zapytanie. Użyj następującego zapytania, aby wyświetlić dane w tabeli:

SELECT id,tutorial_name FROM tutorials;

PostgreSQL Wybierz opcję Instrukcja w powłoce SQL

UWAGA: Użyj polecenia \c, aby połączyć się z bazą danych zawierającą tabelę, którą chcesz przeszukać. W naszym przypadku łączymy się z bazą danych guru99.

Krok 2) Jeśli chcesz wyświetlić wszystkie kolumny w danej tabeli, możesz użyć symbolu wieloznacznego gwiazdki (*). Oznacza to, że sprawdza każdą możliwość i w rezultacie zwraca wszystkie kolumny.

SELECT * FROM tutorials;

PostgreSQL Wybierz opcję Instrukcja w powłoce SQL

Wyświetla wszystkie rekordy tabeli tutoriali.

Krok 3) Za pomocą klauzuli ORDER możesz sortować dane w tabeli na podstawie konkretnej kolumny. Klauzula ORDER porządkuje dane w kolejności od A do Z.

SELECT * FROM tutorials ORDER BY id;

PostgreSQL Wybierz opcję Instrukcja w powłoce SQL

Możesz sortować od Z do A, używając „DESC” po instrukcji „ORDER BY”.

SELECT * FROM tutorials ORDER BY id DESC;

PostgreSQL Wybierz opcję Instrukcja w powłoce SQL

Krok 4) WYBIERZ WYRÓŻNIONY w PostgreSQL klauzuli można użyć do usunięcia zduplikowanych wierszy z wyniku. Zachowuje jeden wiersz dla każdej grupy duplikatów.

Syntax:
SELECT DISTINCT column_1 FROM table_name;

Przeprowadźmy zapytanie o wartości identyfikatorów Select Distinct w Postgresie z naszych samouczków tabelowych, używając zapytań DISTINCT w PostgreSQL:

SELECT DISTINCT(id) FROM tutorials;

PostgreSQL Wybierz opcję Instrukcja w powłoce SQL

Krok 5) Możesz użyć PostgreSQL Klauzula LIMIT ograniczająca liczbę rekordów zwracanych przez zapytanie SELECT.

SELECT * FROM tutorials LIMIT 4;

PostgreSQL Wybierz opcję Instrukcja w powłoce SQL

PostgreSQL Instrukcja SELECT w pgAdmin

Krok 1) W drzewie obiektów:

  1. Kliknij prawym przyciskiem myszy na Tabelę.
  2. Wybierz Skrypty.
  3. Kliknij WYBIERZ SKRYPT.

PostgreSQL Instrukcja SELECT w pgAdmin

Krok 2) W panelu po prawej stronie:

  1. W razie potrzeby edytuj zapytanie SELECT.
  2. Kliknij ikonę Błyskawicy.
  3. Obserwuj wynik.

PostgreSQL Instrukcja SELECT w pgAdmin

DISTINCT w wielu kolumnach

Klauzula SELECT DISTINCT może również dotyczyć więcej niż jednej kolumny. Jeśli po DISTINCT wymieniasz wiele kolumn, PostgreSQL traktuje kombinację tych kolumn jako całość i usuwa wiersze, w których cała kombinacja się powtarza.

Syntax:
SELECT DISTINCT column_1, column_2 FROM table_name;

Na przykład, aby zwrócić unikalne kombinacje tutorial_name i id z tabeli tutorials:

SELECT DISTINCT tutorial_name, id FROM tutorials;

W tym przypadku wiersz jest usuwany tylko wtedy, gdy zarówno parametr tutorial_name, jak i id pasują do innego wiersza. Jeśli dwa wiersze mają tę samą nazwę tutorial_name, ale różne wartości id, oba są zachowywane, ponieważ kombinacja jest nadal unikatowa. Warto pamiętać o tym zachowaniu: funkcja DISTINCT nie usuwa duplikatów pojedynczej kolumny, gdy zaznaczonych jest kilka kolumn; usuwa duplikaty całego zestawu zaznaczonych kolumn.

DISTINCT vs GROUP BY w PostgreSQL

Zarówno DISTINCT, jak i GROUP BY mogą usuwać powtarzające się wartości, ale służą różnym celom:

  • DISTINCT po prostu zwraca unikatowe wiersze z wyniku i sprawdza się najlepiej, gdy potrzebujesz jedynie listy bez duplikatów.
  • GRUPUJ WEDŁUG grupuje wiersze, które współdzielą wartość, dzięki czemu można stosować funkcje agregujące, takie jak LICZNIK, SUMA lub AVG do każdej grupy.

Na przykład oba poniższe zapytania zwracają unikalne wartości identyfikatorów:

SELECT DISTINCT id FROM tutorials;
SELECT id FROM tutorials GROUP BY id;

Użyj DISTINCT, aby uzyskać prostą listę unikatowych wartości, i GROUP BY, gdy potrzebujesz również obliczeń dla każdej grupy, na przykład zliczenia, ile samouczków ma wspólny identyfikator. W przypadku prostych zapytań planista często generuje podobną wydajność dla obu, ale GROUP BY jest wymagany, gdy występuje agregacja.

Ściągawka

SELECT [column names] FROM [table_name] [clause]

Oto różne parametry:

  • nazwy kolumn: Nazwy kolumn, których wartości chcesz pobrać.
  • Z: Klauzula FROM definiuje jedną lub więcej tabel źródłowych dla instrukcji SELECT.
  • Nazwa tabeli: Nazwa istniejącej tabeli, w której chcesz wykonać zapytanie.

Różne klauzule to:

Polecenia OPIS
* Pobiera rekordy dla wszystkich wierszy w tabeli.
DISTINCT WYRÓŻNIONY w PostgreSQL pomaga usunąć duplikaty z wyniku.
ZAMÓW PRZEZ Sortuje wiersze na podstawie kolumny. Domyślna kolejność sortowania jest rosnąca. Użyj słowa kluczowego DESC, aby posortować w kolejności malejącej.
LIMIT LIMIT w PostgreSQL ogranicza liczbę rekordów zwracanych przez zapytanie.

FAQ

Tak. Asystenci AI mogą przekształcić opis w polecenia SELECT DISTINCT, dodać ORDER BY lub LIMIT oraz wyjaśnić wynik. Mimo to należy przetestować zapytanie na schemacie przed uruchomieniem go w środowisku produkcyjnym.

Tak. Narzędzia AI mogą odczytać plan zapytania z EXPLAIN ANALYZE i zasugerować indeksy lub przepisanie DISTINCT jako GROUP BY. Zawsze weryfikuj sugestie na podstawie rzeczywistych danych, ponieważ wydajność zależy od rozmiaru tabeli i indeksów.

DISTINCT usuwa duplikaty wierszy we wszystkich wybranych kolumnach. DISTINCT ON (wyrażenie) zachowuje pierwszy wiersz dla każdej odrębnej wartości tego wyrażenia, pozwalając wybrać jeden wiersz z grupy, zwykle w połączeniu z ORDER BY.

Funkcja DISTINCT może działać wolniej w przypadku dużych tabel, ponieważ musi porównywać i usuwać duplikaty, często używając sortowania lub haszowania. Odpowiednie indeksy i ograniczenie liczby wybranych kolumn pomagają obniżyć koszt.

Podsumuj ten post następująco: