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.

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;
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;
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;
Możesz sortować od Z do A, używając „DESC” po instrukcji „ORDER BY”.
SELECT * FROM tutorials ORDER BY id DESC;
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;
Krok 5) Możesz użyć PostgreSQL Klauzula LIMIT ograniczająca liczbę rekordów zwracanych przez zapytanie SELECT.
SELECT * FROM tutorials LIMIT 4;
PostgreSQL Instrukcja SELECT w pgAdmin
Krok 1) W drzewie obiektów:
- Kliknij prawym przyciskiem myszy na Tabelę.
- Wybierz Skrypty.
- Kliknij WYBIERZ SKRYPT.
Krok 2) W panelu po prawej stronie:
- W razie potrzeby edytuj zapytanie SELECT.
- Kliknij ikonę Błyskawicy.
- Obserwuj wynik.
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. |








