РІЗНА в PostgreSQL: вибір, порядок і обмеження (приклади)

⚡ Розумний підсумок

РІЗНА в PostgreSQL використовується з інструкцією SELECT для видалення дублікатів рядків та повернення лише унікальних значень. Вона охоплює синтаксис SELECT, оболонку SQL та pgAdmin, DISTINCT для одного та кількох стовпців, а також порівняння DISTINCT та GROUP BY.

  • 🔎 ВИБІР: Отримати стовпці з таблиці за допомогою команди SELECT column FROM table.
  • 🧹 РІЗНЕ: Видаліть дублікати рядків і залиште один рядок на кожне унікальне значення.
  • ↕️ СОРТУВАТИ ПО: Сортувати за зростанням за замовчуванням або за спаданням за допомогою DESC.
  • 🔢 ОБМЕЖЕННЯ: Обмежте кількість записів, які повертає запит.
  • 🖥️ Інструменти: Виконайте ті самі запити в SQL Shell або pgAdmin.

РІЗНА в PostgreSQL

Ви можете отримати дані з таблиці за допомогою оператора SELECT.

Синтаксис:

SELECT [column names] FROM [table_name]

Тут,

  • назви стовпців: Імена стовпців, значення яких потрібно отримати.
  • ВІД: Речення FROM визначає одну або декілька вихідних таблиць для SELECT.
  • table_name: Ім'я існуючої таблиці, до якої потрібно зробити запит.

Що таке DISTINCT у PostgreSQL?

Команда DISTINCT пункт у PostgreSQL використовується з інструкцією SELECT для видалення дублікатів рядків з результуючого набору. Якщо стовпець містить повторювані значення, інструкція SELECT DISTINCT повертає лише унікальні значення, зберігаючиping окремий рядок для кожної групи дублікатів. Це корисно, коли вам потрібен список окремих записів, таких як унікальні міста клієнтів або категорії продуктів, без повторень.

Функція DISTINCT обчислює всі стовпці, перелічені в операторі SELECT, щоб визначити, чи є рядок унікальним. PostgreSQL також надає DISTINCT ON, який повертає перший рядок для кожного унікального значення заданого виразу. Ви можете поєднувати DISTINCT з ORDER BY, щоб контролювати, які рядки відображаються, та з LIMIT, щоб обмежити кількість результатів.

PostgreSQL Виберіть Інструкція в SQL Shell

Крок 1) У нас є таблиця «tutorials» з двома стовпцями: «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

Ви можете сортувати від Я до А, використовуючи «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 з наших навчальних посібників з таблиць, використовуючи запити Distinct у 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;

У цьому випадку рядок видаляється лише тоді, коли і ім'я_туторіала, і id збігаються з іншим рядком. Якщо два рядки мають однакове ім'я_туторіала, але різні значення id, обидва зберігаються, оскільки комбінація все ще унікальна. Важливо пам'ятати про таку поведінку: DISTINCT не видаляє дублікати одного стовпця, коли вибрано кілька стовпців; він видаляє дублікати всього набору вибраних стовпців разом.

DISTINCT проти GROUP BY у PostgreSQL

Як DISTINCT, так і GROUP BY можуть видаляти дублікати значень, але вони служать різним цілям:

  • DISTINCT просто повертає унікальні рядки з результату та найкраще підходить, коли вам потрібен лише список без дублікатів.
  • GROUP BY групує рядки, що мають спільне значення, щоб ви могли застосовувати агрегатні функції, такі як COUNT, SUM або AVG кожній групі.

Наприклад, два запити нижче повертають унікальні значення ідентифікатора:

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

Використовуйте DISTINCT для простого списку унікальних значень, а GROUP BY – коли вам також потрібне обчислення для кожної групи, наприклад, підрахунок кількості навчальних посібників з одним ідентифікатором. У простих запитах планувальник часто забезпечує подібну продуктивність для обох, але GROUP BY потрібен щоразу, коли використовується агрегація.

Чит лист

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

Ось різні параметри:

  • назви стовпців: Імена стовпців, значення яких потрібно отримати.
  • ВІД: Речення FROM визначає одну або декілька вихідних таблиць для SELECT.
  • table_name: Ім'я існуючої таблиці, до якої потрібно зробити запит.

Різні пункти:

Команди Опис
* Отримує записи для всіх рядків таблиці.
DISTINCT РІЗНА в PostgreSQL допомагає видалити дублікати з результату.
СОРТУВАТИ ЗА Сортує рядки на основі стовпця. Порядок сортування за замовчуванням – за зростанням. Використовуйте ключове слово DESC для сортування за спаданням.
МЕЖА ОБМЕЖЕННЯ в PostgreSQL обмежує кількість записів, які повертає запит.

Поширені запитання

Так. Помічники ШІ можуть перетворити опис на оператори SELECT DISTINCT, додати ORDER BY або LIMIT та пояснити результат. Вам все одно слід протестувати запит на вашій схемі, перш ніж запускати його у продакшені.

Так. Інструменти штучного інтелекту можуть зчитувати план запиту з EXPLAIN ANALYZE та пропонувати індекси або переписувати DISTINCT як GROUP BY. Завжди перевіряйте пропозиції з реальними даними, оскільки продуктивність залежить від розміру таблиці та індексів.

DISTINCT видаляє дублікати рядків у всіх вибраних стовпцях. DISTINCT ON (вираз) зберігає перший рядок для кожного окремого значення цього виразу, дозволяючи вибрати один рядок на групу, зазвичай у поєднанні з ORDER BY.

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

Підсумуйте цей пост за допомогою: