РАЗЛИЧЕН в PostgreSQL: Избор, Поръчка по & Ограничение (Примери)

⚡ Умно обобщение

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

  • ???? ИЗБЕРЕТЕ: Извличане на колони от таблица с SELECT колона FROM таблица.
  • 🧹 ОТЛИЧЕН: Премахнете дублиращите се редове и запазете по един ред за всяка уникална стойност.
  • ↕️ ПОДРЕДЕНИ ПО: Сортирайте възходящо по подразбиране или низходящо с DESC.
  • 🔢 ОГРАНИЧЕНИЕ: Ограничете броя на записите, които заявката връща.
  • Инструменти: Изпълнете същите заявки в SQL Shell или pgAdmin.

РАЗЛИЧЕН в PostgreSQL

Можете да извлечете данни от таблицата с помощта на оператор 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;

PostgreSQL Изберете Изявление в SQL Shell

ЗАБЕЛЕЖКА: Използвайте командата \c, за да се свържете с базата данни, която съдържа таблицата, към която искате да направите заявка. В нашия случай сме свързани с базата данни guru99.

Стъпка 2) Ако искате да видите всички колони в дадена таблица, можем да използваме заместващия знак звездичка (*). Това означава, че проверява всяка възможност и в резултат на това ще върне всяка колона.

SELECT * FROM tutorials;

PostgreSQL Изберете Изявление в SQL Shell

Той показва всички записи на таблицата с уроци.

Стъпка 3) Можете да използвате клаузата ORDER, за да сортирате данни в таблица въз основа на определена колона. Клаузата ORDER организира данните в ред от А до Я.

SELECT * FROM tutorials ORDER BY id;

PostgreSQL Изберете Изявление в SQL Shell

Можете да сортирате от Z до A, като използвате „DESC“ след оператора „ORDER BY“.

SELECT * FROM tutorials ORDER BY id DESC;

PostgreSQL Изберете Изявление в SQL Shell

Стъпка 4) SELECT DISTINCT в PostgreSQL клаузата може да се използва за премахване на дублиращи се редове от резултата. Той поддържа един ред за всяка група дубликати.

Syntax:
SELECT DISTINCT column_1 FROM table_name;

Нека направим заявка за Postgres Select Distinct id стойности от нашите уроци за таблици, използвайки заявки за различни имена в PostgreSQL:

SELECT DISTINCT(id) FROM tutorials;

PostgreSQL Изберете Изявление в SQL Shell

Стъпка 5) Можете да използвате PostgreSQL Клауза LIMIT за ограничаване на броя на записите, върнати от заявката SELECT.

SELECT * FROM tutorials LIMIT 4;

PostgreSQL Изберете Изявление в SQL Shell

PostgreSQL Изберете оператор в pgAdmin

Стъпка 1) В дървото на обектите:

  1. Щракнете с десния бутон върху таблицата.
  2. Изберете Скриптове.
  3. Кликнете върху ИЗБЕРИ СКРИПТ.

PostgreSQL Изберете оператор в pgAdmin

Стъпка 2) В панела отдясно:

  1. Редактирайте заявката SELECT, ако е необходимо.
  2. Щракнете върху иконата на Светкавица.
  3. Наблюдавайте изхода.

PostgreSQL Изберете оператор в pgAdmin

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 ограничава броя на записите, върнати от заявката.

Въпроси и Отговори

Да. Асистентите с изкуствен интелект могат да превърнат описание в SELECT DISTINCT оператори, да добавят ORDER BY или LIMIT и да обяснят резултата. Все пак трябва да тествате заявката върху вашата схема, преди да я изпълните в продукция.

Да. Инструментите с изкуствен интелект могат да прочетат плана на заявката от EXPLAIN ANALYZE и да предложат индекси или пренаписване на DISTINCT като GROUP BY. Винаги валидирайте предложенията с реални данни, тъй като производителността зависи от размера на таблицата и индексите.

DISTINCT премахва дублиращи се редове във всички избрани колони. DISTINCT ON (израз) запазва първия ред за всяка уникална стойност на този израз, което ви позволява да изберете по един ред на група, обикновено в комбинация с ORDER BY.

DISTINCT може да бъде по-бавен при големи таблици, защото трябва да сравнява и премахва дубликати, често използвайки сортиране или хеширане. Правилните индекси и ограничаването на избраните колони спомагат за намаляване на разходите му.

Обобщете тази публикация с: