РАЗЛИЧЕН в PostgreSQL: Избор, Поръчка по & Ограничение (Примери)
⚡ Умно обобщение
РАЗЛИЧЕН в PostgreSQL се използва с оператор SELECT за премахване на дублиращи се редове и връщане само на уникални стойности. Обхваща синтаксиса на SELECT, SQL Shell и pgAdmin, DISTINCT за единични и множество колони и DISTINCT спрямо GROUP BY.

Можете да извлечете данни от таблицата с помощта на оператор SELECT.
Синтаксис:
SELECT [column names] FROM [table_name]
Тук
- имена на колони: Име на колоните, чиято стойност искате да извлечете.
- ОТ: Клаузата FROM дефинира една или повече изходни таблици за SELECT.
- име_на_таблица: Името на съществуваща таблица, към която искате да направите заявка.
Какво е DISTINCT в PostgreSQL?
- DISTINCT клауза в PostgreSQL се използва с оператор SELECT за премахване на дублиращи се редове от резултатния набор. Когато колона съдържа повтарящи се стойности, SELECT DISTINCT връща само уникалните стойности, keeping един ред за всяка група дубликати. Това е полезно, когато искате списък с отделни записи, като например уникални градове на клиенти или категории продукти, без повторение.
DISTINCT оценява всички колони, изброени в оператора SELECT, за да определи дали даден ред е уникален. PostgreSQL също така предоставя DISTINCT ON, който връща първия ред за всяка уникална стойност на зададен израз. Можете да комбинирате DISTINCT с ORDER BY, за да контролирате кои редове се показват, и с LIMIT, за да ограничите броя на резултатите.
PostgreSQL Изберете Изявление в SQL Shell
Стъпка 1) Имаме таблица „tutorials“ с 2 колони, „id“ и „tutorial_name“. Нека я запитваме. Използвайте следната заявка, за да изброите данните в таблицата:
SELECT id,tutorial_name FROM tutorials;
ЗАБЕЛЕЖКА: Използвайте командата \c, за да се свържете с базата данни, която съдържа таблицата, към която искате да направите заявка. В нашия случай сме свързани с базата данни guru99.
Стъпка 2) Ако искате да видите всички колони в дадена таблица, можем да използваме заместващия знак звездичка (*). Това означава, че проверява всяка възможност и в резултат на това ще върне всяка колона.
SELECT * FROM tutorials;
Той показва всички записи на таблицата с уроци.
Стъпка 3) Можете да използвате клаузата ORDER, за да сортирате данни в таблица въз основа на определена колона. Клаузата ORDER организира данните в ред от А до Я.
SELECT * FROM tutorials ORDER BY id;
Можете да сортирате от Z до A, като използвате „DESC“ след оператора „ORDER BY“.
SELECT * FROM tutorials ORDER BY id DESC;
Стъпка 4) SELECT DISTINCT в PostgreSQL клаузата може да се използва за премахване на дублиращи се редове от резултата. Той поддържа един ред за всяка група дубликати.
Syntax: SELECT DISTINCT column_1 FROM table_name;
Нека направим заявка за Postgres Select Distinct id стойности от нашите уроци за таблици, използвайки заявки за различни имена в PostgreSQL:
SELECT DISTINCT(id) FROM tutorials;
Стъпка 5) Можете да използвате PostgreSQL Клауза LIMIT за ограничаване на броя на записите, върнати от заявката SELECT.
SELECT * FROM tutorials LIMIT 4;
PostgreSQL Изберете оператор в pgAdmin
Стъпка 1) В дървото на обектите:
- Щракнете с десния бутон върху таблицата.
- Изберете Скриптове.
- Кликнете върху ИЗБЕРИ СКРИПТ.
Стъпка 2) В панела отдясно:
- Редактирайте заявката SELECT, ако е необходимо.
- Щракнете върху иконата на Светкавица.
- Наблюдавайте изхода.
DISTINCT на множество колони
Клаузата SELECT DISTINCT може да се прилага и за повече от една колона. Когато изброявате няколко колони след DISTINCT, PostgreSQL третира комбинацията от тези колони като едно цяло и премахва редовете, където цялата тази комбинация е дублирана.
Syntax: SELECT DISTINCT column_1, column_2 FROM table_name;
Например, за да върнете уникалните комбинации от tutorial_name и id от таблицата tutorials:
SELECT DISTINCT tutorial_name, id FROM tutorials;
В този случай ред се премахва само когато и двете стойности на tutorial_name, и id съвпадат с друг ред. Ако два реда споделят едно и също име на tutorial_name, но имат различни стойности на id, и двата се запазват, защото комбинацията е все още уникална. Важно е да се запомни това поведение: DISTINCT не премахва дубликатите на една колона, когато са избрани няколко колони; той премахва дубликатите на целия набор от избрани колони заедно.
DISTINCT срещу GROUP BY в PostgreSQL
Както DISTINCT, така и GROUP BY могат да премахват дублиращи се стойности, но те служат за различни цели:
- DISTINCT просто връща уникални редове от резултата и е най-подходящ, когато ви е необходим само списък без дублиране.
- ГРУПИРАЙ ПО групира редове, които споделят една и съща стойност, така че да можете да прилагате агрегиращи функции като COUNT, SUM или AVG към всяка група.
Например, двете заявки по-долу връщат уникалните стойности на идентификатора:
SELECT DISTINCT id FROM tutorials; SELECT id FROM tutorials GROUP BY id;
Използвайте DISTINCT за обикновен списък с уникални стойности и използвайте GROUP BY, когато ви е необходимо и изчисление за всяка група, като например преброяване на броя на уроците, споделящи всеки идентификатор. При прости заявки планиращият често дава подобна производителност и за двете, но GROUP BY е необходим винаги, когато е включено агрегиране.
Cheat Sheet
SELECT [column names] FROM [table_name] [clause]
Ето различните параметри:
- имена на колони: Име на колоните, чиято стойност искате да извлечете.
- ОТ: Клаузата FROM дефинира една или повече изходни таблици за SELECT.
- име_на_таблица: Името на съществуваща таблица, към която искате да направите заявка.
Различни клаузи са:
| Команди | Descriptйон |
|---|---|
| * | Извлича записи за всички редове в таблицата. |
| DISTINCT | РАЗЛИЧЕН в PostgreSQL помага ви да премахнете дубликати от резултата. |
| ПОДРЕДЕНИ ПО | Сортира редове въз основа на колона. Подразбиращият се ред за сортиране е възходящ. Използвайте ключовата дума DESC, за да сортирате в низходящ ред. |
| ОГРАНИЧАВА | ЛИМИТ в PostgreSQL ограничава броя на записите, върнати от заявката. |








