Oracle distinct что это

Обновлено: 06.07.2024

Инструкция SELECT DISTINCT используется для возврата только определенных значений.

Внутри таблицы столбец часто содержит множество повторяющихся значений; иногда требуется только перечислить различные (определенные) значения.

Синтаксис SELECT DISTINCT

Демо базы данных

Ниже приведена выборка из таблицы "клиенты" в базе данных Northwind:

Выбрать без DISTINCT

Следующая инструкция SQL выбирает все (включая дубликаты) значения из столбца "страна" в таблице "клиенты":

Пример

Теперь давайте используем ключевое слово DISTINCT с приведенным выше оператором SELECT и посмотрим результат.

Выбрать с DISTINCT

Следующая инструкция SQL выбирает только отдельные значения из столбца "страна" в таблице "клиенты":

Пример

Следующая инструкция SQL перечисляет количество различных (определенных) стран клиентов:

Пример

Примечание: приведенный выше пример не будет работать в Firefox и Microsoft Edge! Потому что COUNT (DISTINCT column_name) не поддерживается в базах данных Microsoft Access. Firefox и Microsoft Edge используют Microsoft Access в наших примерах.

Вот обходной путь для MS Access:

Пример

SELECT Count(*) AS DistinctCountries
FROM (SELECT DISTINCT Country FROM Customers);

Упражнения

Тесты

КАК СДЕЛАТЬ

ПОДЕЛИТЬСЯ

СЕРТИФИКАТЫ

Сообщить об ошибке

Если вы хотите сообщить об ошибке или сделать предложение, не стесняйтесь, присылайте нам электронное письмо:

Ваше предложение:

Спасибо, за вашу помощь!

Топ Учебники

Топ Справочники

Топ Примеры

Веб Сертификаты

SchoolsW3 оптимизирован для обучения, тестирования и тренировки. Примеры упрощают и улучшают чтение и базовое понимание. Учебники, справочники, примеры постоянно пересматриваются, для того, чтобы избежать ошибки, невозможно гарантировать правильность всего содержимого. Используя данный сайт, вы соглашаетесь прочитать и принять условия использования, cookie и Политика конфиденциальности. Авторское право 1999 - 2021 Все права защищены.
Работает на W3.CSS.

SQL оператор DISTINCT используется для удаления дубликатов из результирующего набора оператора SELECT.

Синтаксис

Синтаксис для оператора DISTINCT в SQL:

SELECT DISTINCT expressions
FROM tables
[WHERE conditions];

Параметры или аргументы

expressions Столбцы или расчеты, которые вы хотите получить. tables Таблицы, из которых вы хотите получить записи. В предложении FROM должна быть указана хотя бы одна таблица. WHERE conditions Необязательный. Условия, которые должны быть выполнены для записей, которые будут выбраны.

Примечание

  • Если в операторе DISTINCT указано только одно выражение, запрос возвратит уникальные значения для этого выражения.
  • Если в операторе DISTINCT указано несколько выражений, запрос извлекает уникальные комбинации для перечисленных выражений.
  • В SQL оператор DISTINCT не игнорирует значения NULL. Поэтому при использовании DISTINCT в вашем операторе SQL ваш результирующий набор будет содержать значение NULL в качестве отдельного значения.

Пример - поиск уникальных значений в столбце

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

В этом примере у нас есть таблица suppliers со следующими данными:

supplier_id supplier_name city state
100 Yandex Moscow Russia
200 Google Lansing Michigan
300 Oracle Redwood City California
400 Bing Redmond Washington
500 Yahoo Sunnyvale Washington
600 DuckDuckGo Paoli Pennsylvania
700 Qwant Paris Ile de France
800 Facebook Menlo Park California
900 Electronic Arts San Francisco California

Давайте найдем все уникальные значения в таблице suppliers . Введите следующий SQL оператор:

Будет выбрано 6 записей. Вот результаты, которые вы должны получить:

state
Russia
Ile de France
Pennsylvania
California
Washington
Michigan

В этом примере возвращаются все уникальные значения состояния из таблицы поставщиков и удаляются все дубликаты из набора результатов. Как видите, штат Калифорния в наборе результатов отображается только один раз, а не четыре раза.

Пример - поиск уникальных значений в нескольких столбцах

Далее давайте рассмотрим, как использовать SQL DISTINCT для удаления дубликатов из более чем одного поля в операторе SELECT.

Используя ту же таблицу suppliers из предыдущего примера, введите следующий SQL оператор:

Будет выбрано 8 записей. Вот результаты, которые вы получите:

city state
Moscow Russian
Lansing Michigan
Redwood City California
Redmond Washington
Sunnyvale Washington
Paoli Pennsylvania
Paris France
Menlo Park California

В этом примере будет возвращаться каждая уникальная комбинация city и state . В этом случае DISTINCT применяется к каждому полю, указанному после ключевого слова DISTINCT. Как видите, 'Redwood City', 'California' в наборе результатов отображается только один раз, а не дважды.

Пример - как DISTINCT обрабатывает значения NULL

Наконец, считает ли оператор DISTINCT NULL уникальным значением в SQL? Ответ - да. Давайте рассмотрим это дальше.

В этом примере у нас есть таблица products со следующими данными:

product_id product_name category_id
1 Pear 50
2 Banana 50
3 Orange 50
4 Apple 50
5 Bread 75
6 Sliced Ham 25
7 Kleenex NULL

Теперь давайте выберем уникальные значения из поля category_id , которое содержит значение NULL. Введите следующий запрос SQL:


В этой статье мы узнаем о DISTINCT в Oracle. Одним из важных ключевых слов, которые мы используем при извлечении наших значений из одной или нескольких таблиц в базе данных, является ключевое слово DISTINCT. Теперь давайте перейдем к ключевому слову DISTINCT. Когда мы произносим или слышим английское слово «отличное», первое, что приходит нам в голову, это УНИКАЛЬНО или отдельно от других. То же самое относится и к базе данных. В таблице могут быть сотни записей, и из этих записей мы можем иметь дубликаты записей. Это ключевое слово помогает нам получать только уникальные записи.

Синтаксис

Теперь мы рассмотрим синтаксис отдельного ключевого слова в Oracle. В этом случае у нас есть два варианта синтаксиса. Первый синтаксис должен использовать отличное ключевое слово без условий, а второй синтаксис должен использовать отличное ключевое слово с условиями.

Синтаксис без условий: Select DISTINCT(expressions) from table_names;

Синтаксис с условием: Select DISTINCT(expressions) from table_names (where conditions);

параметры

Теперь мы рассмотрим различные параметры, используемые в двух приведенных выше синтаксисах.

  • выражения: мы предоставляем имена столбцов или выражения, которые мы хотим выполнить.
  • table_names: мы предоставляем имена таблиц, из которых нам нужны записи. Здесь важно отметить, что после предложения должно быть хотя бы одно имя таблицы.
  • (Условия «Где»): это необязательно. Если мы предоставим условие «где», мы получим значения после выполнения запроса, только если упомянутое условие выполнено.

Примечание. Следует помнить одну важную информацию : ключевое слово DISTINCT рассматривает нулевое значение также как уникальное значение. Таким образом, в случае, если у нас есть нулевые значения в столбце, и мы используем ключевое слово DISTINCT для извлечения уникальных значений, оно также будет отображать значение NULL в выходных данных.

Как использовать DISTINCT в Oracle?

К настоящему времени мы обсудили, что такое ключевое слово DISTINCT в oracle, синтаксис ключевого слова DISTINCT и различные параметры, используемые в синтаксисе.

Теперь мы рассмотрим различные примеры, чтобы узнать, как эффективно использовать DISTINCT в Oracle. Прежде чем перейти к примерам, мы будем использовать таблицу EMPLOYEE, уже созданную в базе данных. Таблица состоит из пяти столбцов: NAME, VEHICLE_NAME, EMPLOYEE_ID, VEHICLE_ID и CITY. Ниже приведен скриншот значений, присутствующих в таблице сотрудников. Запрос, который мы будем использовать для этого, является основным оператором SELECT.

SELECT * from employee;

При выполнении в SQL-разработчике мы получаем все значения, как показано ниже.

Вывод: таблица сотрудников


Теперь давайте начнем с примеров.

1. Уникальные значения в столбце без условия

В этом примере мы собираемся использовать DISTINCT, чтобы найти уникальные значения в определенном столбце таблицы без каких-либо условий. В качестве примера мы собираемся найти уникальные значения, присутствующие в столбце транспортного средства таблицы сотрудников. Запрос показан ниже:

select DISTINCT(vehicle_name) from employee;

Выход:

В приведенном выше запросе, как вы можете видеть, мы указали имя столбца, а также имя таблицы. Выполнив вышеуказанный запрос в SQL-разработчике, мы получим следующий вывод.


2. Уникальные значения в столбце с условием

В этом примере мы собираемся найти уникальные значения в столбце, как и в предыдущем примере, но с небольшой модификацией. В этом мы собираемся извлечь уникальные значения, основанные на некотором условии. В качестве примера давайте возьмем уникальные значения имени автомобиля в колонке из таблицы сотрудников, если город не является Калькуттой. Запрос на то же самое приведен ниже.

Код:

Выход:

Если вы видите вышеупомянутый запрос, запрос должен вернуть значения, которые удовлетворяют условию where. Выполнив вышеуказанный запрос в SQL-разработчике, мы получим следующий вывод.


Как вы можете видеть в предыдущем примере, у нас было шесть уникальных значений, тогда как во втором примере у нас есть пять уникальных значений, поскольку мы добавили определенное условие во втором примере.

3. Уникальные значения из нескольких столбцов

В этом примере мы собираемся найти уникальные значения в нескольких столбцах с помощью DISTINCT. Поэтому в предыдущих примерах мы использовали отдельные столбцы, но в этом случае мы будем использовать несколько столбцов. Например, предположим, что мы хотим найти уникальные значения как названия транспортного средства, так и города, и результаты должны быть в порядке возрастания на основе столбца city. Давайте посмотрим на запрос для того же ниже.

Код:

select DISTINCT VEHICLE_NAME, CITY from employee ORDER BY CITY ASC;

Выход:

Сначала в приведенном выше запросе данные извлекаются в порядке возрастания на основе столбца city, а затем оба значения в столбцах «имя транспортного средства» и «city» используются для получения уникальных пар. Выполнив вышеуказанный запрос в SQL-разработчике, мы получим следующий вывод.


4. DISTINCT со значениями NULL

Ранее в этой статье мы обсуждали, что DISTINCT рассматривает значения NULL как уникальные значения, поэтому если у нас есть столбец с нулевыми значениями в нем. Это будет рассматриваться как уникальная ценность. Например, у нас есть нулевые значения в столбце CITY, которые вы можете увидеть на скриншоте, представленном в начале статьи, где показаны все значения таблицы employee. Итак, мы применим DISTINCT к столбцу CITY, чтобы выяснить влияние нулевых значений на результат. Запрос для того же показан ниже.

Код:

select DISTINCT CITY from employee;

Выход:

Выполнив вышеуказанный запрос в SQL-разработчике, мы получим следующий вывод.


Как мы видим, результат показывает ноль как отдельное значение. Итак, это показывает, что DISTINCT рассматривает нуль как уникальное значение.

Вывод - DISTINCT в Oracle

В этой статье мы обсудили ключевое слово DISTINCT в oracle, синтаксисы, используемые для использования DISTINCT в запросах, параметры, используемые в этих синтаксисах, а затем с помощью различных примеров мы узнали, как мы можем использовать DISTINCT в oracle для решения наших необходимых задач.

Рекомендуемые статьи

Это руководство по DISTINCT в Oracle. Здесь мы обсуждаем ключевое слово DISTINCT в oracle, синтаксисы, используемые для использования DISTINCT в кодах и выводе. Вы также можете просмотреть другие наши статьи, чтобы узнать больше -

Выражение MySQL DISTINCT используется для выборки уникальных значений из указанных столбцов. В этой статье мы покажем, как применять DISTINCT в MySQL с помощью Workbench и командной строки.

Синтаксис запросов SELECT DISTINCT в MySQL

Базовый синтаксис запросов SELECT DISTINCT :

  • DISTINCT : это ключевое слово возвращает уникальные результаты;
  • Columns : позволяет выбрать столбцы, из которых будет осуществляться выборка. Это может быть один или несколько столбцов;
  • Source : одна или несколько таблиц, присутствующих в базе данных. Используйте ключевое слово JOIN , чтобы соединить несколько таблиц.

Мы собираемся использовать данные, приведенные ниже, чтобы объяснить применение ключевого слова DISTINCT в MySQL на конкретном примере:

Синтаксис запросов SELECT DISTINCT в MySQL

DISTINCT-запрос к одному столбцу

В этом примере мы отобразим уникальные записи из столбца education , используя SELECT DISTINCT MySQL . Но сначала выведем все значения из этого столбца:

DISTINCT-запрос к одному столбцу

Теперь я использую ключевое слово DISTINCT :

DISTINCT-запрос к одному столбцу - 2

DISTINCT-запрос к нескольким столбцам

Когда мы используем запрос MySQL DISTINCT по нескольким полям , SELECT вернёт комбинацию нескольких столбцов вместо уникальных отдельных записей. В этом примере мы выберем уникальные записи из столбцов education и profession :

DISTINCT-запрос к нескольким столбцам

Несмотря на то, что мы использовали ключевое слово DISTINCT в выражении SELECT , из скриншота, приведенного выше видно, что запрос вернул дублирующие результаты внутри каждого столбца, потому что:

Пример DISTINCT-запроса в MySQL – условие WHERE

В этом MySQL DISTINCT примере мы покажем, как его использовать вместе с условием WHERE . Следующее выражение возвратит уникальные значения столбцов education и profession из таблицы customers , в которых годовой доход больше или равен 85000 :

Пример DISTINCT-запроса в MySQL – условие WHERE

Несмотря на то, что существует 13 уникальных записей с комбинациями столбцов education и profession , 10 записей не соответствуют условию WHERE . Поэтому на скриншоте показано только 5 записей.

Замечание : Выражение DISTINCT в MySQL воспринимает NULL как допустимое уникальное значение. Поэтому используйте любое NOT NULL условие или функцию, чтобы избавиться от этих значений.

DISTINCT или GROUP BY в MySQL

В MySQL DISTINCT наследует поведение от GROUP BY . Если вы используете выражение GROUP BY без агрегатной функции, то оно будет выполнять роль ключевого слова DISTINCT .

Единственное отличие между ними заключается в следующем:

  • GROUP BY сначала сортирует данные, а затем осуществляет группировку;
  • Ключевое слово DISTINCT не выполняет сортировки.

Если вы используете ключевое слово DISTINCT вместе с выражением ORDER BY , то получите тот же результат, что и при применении GROUP BY . Следующий запрос возвращает уникальные значения столбца profession из таблицы customerdetails :

DISTINCT или GROUP BY в MySQL

Уберём ключевое слово DISTINCT и используем выражение GROUP BY :

Как видите, запрос возвращает тот же результат, но в другом порядке:

DISTINCT или GROUP BY в MySQL - 2

В этом MySQL SELECT DISTINCT примере я использую выражение ORDER BY :

Результат тот же, что и при использовании GROUP BY :


Пример DISTINCT-запроса в MySQL – командная строка

Теперь я покажу, как отобразить уникальные записи с помощью SELECT DISTINCT MySQL в командной строки. В этом случае мы выбираем записи с уникальными значениями столбцов education и profession из таблицы customerdetails :

Пример DISTINCT-запроса в MySQL – командная строка

Пожалуйста, оставляйте свои мнения по текущей теме материала. Мы крайне благодарны вам за ваши комментарии, подписки, отклики, дизлайки, лайки!

Дайте знать, что вы думаете по этой теме статьи в комментариях. За комментарии, дизлайки, лайки, подписки, отклики огромное вам спасибо!

Читайте также: