какую функцию выполняет оператор distinct
MySQL Distinct
Выражение MySQL DISTINCT используется для выборки уникальных значений из указанных столбцов. В этой статье мы покажем, как применять DISTINCT в MySQL с помощью Workbench и командной строки.
Синтаксис запросов SELECT DISTINCT в MySQL
Базовый синтаксис запросов SELECT DISTINCT :
Мы собираемся использовать данные, приведенные ниже, чтобы объяснить применение ключевого слова DISTINCT в MySQL на конкретном примере:
DISTINCT-запрос к одному столбцу
Теперь я использую ключевое слово DISTINCT :
DISTINCT-запрос к нескольким столбцам
Пример DISTINCT-запроса в MySQL – условие WHERE
Замечание : Выражение DISTINCT в MySQL воспринимает NULL как допустимое уникальное значение. Поэтому используйте любое NOT NULL условие или функцию, чтобы избавиться от этих значений.
DISTINCT или GROUP BY в MySQL
Единственное отличие между ними заключается в следующем:
Уберём ключевое слово DISTINCT и используем выражение GROUP BY :
Как видите, запрос возвращает тот же результат, но в другом порядке:
В этом MySQL SELECT DISTINCT примере я использую выражение ORDER BY :
Результат тот же, что и при использовании GROUP BY :
Пример DISTINCT-запроса в MySQL – командная строка
Теперь я покажу, как отобразить уникальные записи с помощью SELECT DISTINCT MySQL в командной строки. В этом случае мы выбираем записи с уникальными значениями столбцов education и profession из таблицы customerdetails :
Пожалуйста, оставляйте свои мнения по текущей теме материала. Мы крайне благодарны вам за ваши комментарии, подписки, отклики, дизлайки, лайки!
Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite
Базы данных
SQL оператор DISTINCT
В этом учебном материале вы узнаете, как использовать SQL оператор DISTINCT с синтаксисом и примерами.
Описание
SQL оператор DISTINCT используется для удаления дубликатов из результирующего набора оператора SELECT.
Синтаксис
Синтаксис для оператора DISTINCT в SQL:
Параметры или аргументы
Примечание
Давайте посмотрим, как использовать оператор 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 |
Будет выбрано 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 |
В этом примере у нас есть таблица 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 |
SQL Оператор SELECT DISTINCT
SQL оператор SELECT DISTINCT
Столбец внутри таблицы часто содержит много повторяющихся значений; а иногда необходимо перечислить только разные (отдельные) значения.
Синтаксис SELECT DISTINCT
Демо-база данных
Ниже представлен выбор из таблицы «Customers» («Клиенты») в образце базы данных Northwind:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 |
Пример SELECT без DISTINCT
Следующий SQL оператор выбирает ВСЕ (включая дубликаты) значения из столбца «Country» в таблице «Customers»:
Пример
Теперь давайте используем ключевое слово DISTINCT с указанным выше оператором SELECT и посмотрим на результат.
Примеры SELECT DISTINCT
Следующий SQL оператор выбирает только значения DISTINCT из столбца «Country» в таблице «Customers»:
Пример
Следующий SQL оператор перечисляет количество разных (отдельных) стран-заказчиков:
Пример
Примечание: Приведенный выше пример не будет работать в Firefox! Потому что COUNT(DISTINCT column_name) не поддерживается в базах данных Microsoft Access. Firefox использует Microsoft Access в наших примерах.
SQL Инструкция SELECT DISTINCT
SQL SELECT DISTINCT
Инструкция SELECT DISTINCT используется для возврата только определенных значений.
Внутри таблицы столбец часто содержит множество повторяющихся значений; иногда требуется только перечислить различные (определенные) значения.
Синтаксис SELECT DISTINCT
Демо базы данных
Ниже приведена выборка из таблицы «клиенты» в базе данных Northwind:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 |
Выбрать без DISTINCT
Следующая инструкция SQL выбирает все (включая дубликаты) значения из столбца «страна» в таблице «клиенты»:
Пример
Теперь давайте используем ключевое слово DISTINCT с приведенным выше оператором SELECT и посмотрим результат.
Выбрать с DISTINCT
Следующая инструкция SQL выбирает только отдельные значения из столбца «страна» в таблице «клиенты»:
Пример
Следующая инструкция SQL перечисляет количество различных (определенных) стран клиентов:
Пример
Примечание: приведенный выше пример не будет работать в Firefox и Microsoft Edge! Потому что COUNT (DISTINCT column_name) не поддерживается в базах данных Microsoft Access. Firefox и Microsoft Edge используют Microsoft Access в наших примерах.
Оператор SQL: DISTINCT.
Оператор DISTINCT используется для указания на то, что следует работать только с уникальными значениями столбца.
Он нашел широкое применение в операторе SQL SELECT, для выборки уникальных значений. Так же используется в агрегатных функциях. Синтаксис оператора:
Примеры оператора SQL DISTINCT. Имеется следующая таблица Artists:
Singer | Album | Year | Sale |
The Prodigy | Invaders Must Die | 2008 | 1200000 |
Drowning Pool | Sinner | 2001 | 400000 |
Massive Attack | Mezzanine | 1998 | 2300000 |
The Prodigy | Fat of the Land | 1997 | 600000 |
The Prodigy | Music For The Jilted Generation | 1994 | 1500000 |
Massive Attack | 100th Window | 2003 | 1200000 |
Drowning Pool | Full Circle | 2007 | 800000 |
Massive Attack | Danny The Dog | 2004 | 1900000 |
Drowning Pool | Resilience | 2013 | 500000 |
Пример 1. Используя оператор SQL DISTINCT вывести, какие исполнители (Singer) имеются в таблице:
Пример 2. Используя оператор SQL DISTINCT и COUNT вывести количество уникальных исполнителей в таблице:
Цыфра “3” т.к. в таблице 3 музыкальных группы, которые просто повторяются и уже не уникальны.
Самостоятельно создайте таблицу Artists и выполните каждый пример. В комментариях можете писать новые примеры к данной таблице и не только.