Oracle distinct что это
Инструкция 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 DistinctCountriesFROM (SELECT DISTINCT Country FROM Customers);
Упражнения
Тесты
КАК СДЕЛАТЬ
ПОДЕЛИТЬСЯ
СЕРТИФИКАТЫ
Сообщить об ошибке
Если вы хотите сообщить об ошибке или сделать предложение, не стесняйтесь, присылайте нам электронное письмо:
Ваше предложение:
Спасибо, за вашу помощь!
Топ Учебники
Топ Справочники
Топ Примеры
Веб Сертификаты
SchoolsW3 оптимизирован для обучения, тестирования и тренировки. Примеры упрощают и улучшают чтение и базовое понимание. Учебники, справочники, примеры постоянно пересматриваются, для того, чтобы избежать ошибки, невозможно гарантировать правильность всего содержимого. Используя данный сайт, вы соглашаетесь прочитать и принять условия использования, cookie и Политика конфиденциальности. Авторское право 1999 - 2021 Все права защищены.
Работает на W3.CSS.
SQL оператор DISTINCT используется для удаления дубликатов из результирующего набора оператора SELECT.
Синтаксис
Синтаксис для оператора DISTINCT в SQL:
SELECT DISTINCT expressionsFROM 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 | 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 | 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 на конкретном примере:
DISTINCT-запрос к одному столбцу
В этом примере мы отобразим уникальные записи из столбца education , используя SELECT DISTINCT MySQL . Но сначала выведем все значения из этого столбца:
Теперь я использую ключевое слово DISTINCT :
DISTINCT-запрос к нескольким столбцам
Когда мы используем запрос MySQL DISTINCT по нескольким полям , SELECT вернёт комбинацию нескольких столбцов вместо уникальных отдельных записей. В этом примере мы выберем уникальные записи из столбцов education и profession :
Несмотря на то, что мы использовали ключевое слово DISTINCT в выражении SELECT , из скриншота, приведенного выше видно, что запрос вернул дублирующие результаты внутри каждого столбца, потому что:
Пример DISTINCT-запроса в MySQL – условие WHERE
В этом MySQL DISTINCT примере мы покажем, как его использовать вместе с условием WHERE . Следующее выражение возвратит уникальные значения столбцов education и profession из таблицы customers , в которых годовой доход больше или равен 85000 :
Несмотря на то, что существует 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 SELECT DISTINCT примере я использую выражение ORDER BY :
Результат тот же, что и при использовании GROUP BY :
Пример DISTINCT-запроса в MySQL – командная строка
Теперь я покажу, как отобразить уникальные записи с помощью SELECT DISTINCT MySQL в командной строки. В этом случае мы выбираем записи с уникальными значениями столбцов education и profession из таблицы customerdetails :
Пожалуйста, оставляйте свои мнения по текущей теме материала. Мы крайне благодарны вам за ваши комментарии, подписки, отклики, дизлайки, лайки!
Дайте знать, что вы думаете по этой теме статьи в комментариях. За комментарии, дизлайки, лайки, подписки, отклики огромное вам спасибо!
Читайте также: