DISTINCT в Oracle SQL — как выбрать только уникальные строки без повторений

🟢 DISTINCT в Oracle SQL. Введение

Когда вы извлекаете данные из таблицы, некоторые строки могут повторяться. Чтобы убрать дубликаты и вернуть только уникальные записи, в Oracle SQL используется оператор DISTINCT.

Это особенно полезно:

  • при анализе категорий, регионов, статусов

  • в отчётах, где важно исключить повторения

  • в оптимизации SELECT-запросов с JOIN’ами


🔤 Написание

sql
SELECT DISTINCT столбец1, столбец2, ...
FROM имя_таблицы;

DISTINCT применяется ко всем выбранным столбцам одновременно, а не только к одному.


🔄 Где используется

  • Список уникальных значений

  • Комбинации из двух и более полей

  • Устранение дубликатов при JOIN

  • Подготовка данных для графиков и отчётов

  • Сравнение разных наборов данных


🧪 10 Примеров использования DISTINCT

1️⃣ Уникальные статусы заказов

sql
SELECT DISTINCT status FROM orders;

2️⃣ Уникальные комбинации регион–город

sql
SELECT DISTINCT region, city
FROM customers;

3️⃣ Сравнение с обычным SELECT

sql
SELECT city FROM customers;
-- покажет дубликаты
SELECT DISTINCT city FROM customers;
— покажет только разные города

4️⃣ DISTINCT с функцией COUNT

sql
SELECT COUNT(DISTINCT city) AS уникальных_городов
FROM customers;

5️⃣ DISTINCT после JOIN

sql
SELECT DISTINCT e.department_id
FROM employees e
JOIN departments d ON e.department_id = d.department_id;

6️⃣ DISTINCT с ORDER BY

sql
SELECT DISTINCT job_id
FROM employees
ORDER BY job_id DESC;

7️⃣ DISTINCT с подзапросом

sql
SELECT DISTINCT department_id
FROM employees
WHERE department_id IN (
SELECT department_id FROM departments
);

8️⃣ DISTINCT в представлении

sql
CREATE VIEW unique_categories AS
SELECT DISTINCT category FROM products;

9️⃣ DISTINCT по выражению

sql
SELECT DISTINCT UPPER(city) FROM customers;

Учитывает регистр при определении уникальности.


🔟 DISTINCT в INSERT INTO SELECT

sql
INSERT INTO archive_orders
SELECT DISTINCT * FROM orders
WHERE order_date < SYSDATE - 365;

🧩 DISTINCT в Oracle SQL. Заключение

DISTINCT — это быстрый способ убрать дубли в результатах запроса и вернуть только уникальные строки. Он часто используется в аналитике, отчётах и фильтрации.

💡 Запомни:

  • DISTINCT работает на все указанные столбцы сразу

  • Не путай с GROUP BY, который агрегирует

  • Уместен, когда важна не повторяющаяся выборка


🔜 Следующая статья:

DESC в Oracle SQL — как сортировать результаты в убывающем порядке


 

Понравилась статья? Поделиться с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии