Mysql

Mysql distinct по нескольким полям: DISTINCT по нескольким полям???

Содержание

DISTINCT по нескольким полям???

 
Sirus
 
(2004-02-14 06:48)
[0]

Привет Мастера…

Нужен SQL запрос типа

select distinct(CODE), distinct(NAME), distinct(DATE) from TABLE1

order by CODE, DATE


Как можно сделать???

select distinct(CODE||NAME||DATE) from TALBE1

не устравивает…


 
hursand
 
(2004-02-14 09:02)
[1]

select code,name,distinct(date) from table1

group by code,name


 
kaif
 
(2004-02-14 20:16)
[2]

Просто

select distinct CODE, NAME, DATE from TABLE1

order by CODE, DATE


 
Johnmen
 
(2004-02-15 01:58)
[3]

Смотря, что нужно. Неповторяющаяся тройка полей см. kaif © (14.02.04 20:16) [2].

Неповторяющееся каждое поле — надо подумать…:)


 
kaif
 
(2004-02-15 13:50)
[4]

2 Johnmen © (15.02.04 01:58) [3]

Я тоже об этом подумал после того, как написал. Я бы предложил наверно три select distinct с union, но нужно понять, что спрашивающий имеет в виду под order by code, date. Скорее всего, ему именно нужны уникальные комбинации всех трех полей. Иначе это упорядочивание теряет смысл.


 
Sirus
 
(2004-02-15 18:04)
[5]

Нужны уникальные комбинации трех полей и сортировка по двоим из них…


 
asp
 
(2004-02-16 09:38)
[6]

Посто:

SELECT DISTINCT CODE, NAME, DATE

FROM TABLE

ORDER BY CODE, NAME

Или я что-то не понимаю?


Sql 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 , из скриншота, приведенного выше видно, что запрос вернул дублирующие результаты внутри каждого столбца, потому что:

  • Bachelors и Developer — это уникальная комбинация;
  • Bachelors и Programming — это уникальная комбинация и т.д.

Пример 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 :

Данная публикация представляет собой перевод статьи « MySQL Distinct » , подготовленной дружной командой проекта Интернет-технологии.ру

Помогите сформировать sql запрос

— это работает, но выбирается только поле news, а мне надо id, news, reg, name, comment,date_add

— этот не работает

2 ответа 2

DISTINCT — это уникальность по всем полям ( практически тоже самое что GROUP BY по всем полям )

То что хотите, можно как-то так:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками select sql или задайте свой вопрос.

Похожие

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2020 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2020.1.17.35809

В моей таблице, у меня есть Collection_Date и Tag_Date поле, оба типа date .

Мне нужно запросить эту таблицу, разделяя даты в его компонент месяц, день и год, но до сих пор сохраняя различия между Collection_Date датами и Tag_Date датами, и я не хочу повторения.

Я попытался это:

Тем не менее, это возвращает только строки с уникальным Collection_Date и Tag_Date .

То , что я думаю , что я хочу, чтобы разделить его на два запрос, один SELECT DISTINCT Инга Collection_Date и один для Tag_Date . Тем не менее, я бы очень хотел , чтобы избежать нескольких запросов, если это возможно.

Как я могу это сделать?

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

Или теперь с некоторыми добавил дифференциацию. Она возвращает различные даты и поле типа, указывающие, относится ли дата к тегу, коллекции, или оба.

Этот запрос возвращает все уникальные collection_date и tag_date. Если collection_date такого же, как tag_date они оба вернулись. Запрос также возвращает какой тип даты, когда она:

Если вы хотите только один tag_date или collection_date, когда они имеют дату в общем, то вы можете использовать

Mysql 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 , из скриншота, приведенного выше видно, что запрос вернул дублирующие результаты внутри каждого столбца, потому что:

  • Bachelors и Developer — это уникальная комбинация;
  • Bachelors и Programming — это уникальная комбинация и т.д.

Пример 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 :

Данная публикация представляет собой перевод статьи « MySQL Distinct » , подготовленной дружной командой проекта Интернет-технологии.ру

Помогите сформировать sql запрос

— это работает, но выбирается только поле news, а мне надо id, news, reg, name, comment,date_add

— этот не работает

2 ответа 2

DISTINCT — это уникальность по всем полям ( практически тоже самое что GROUP BY по всем полям )

То что хотите, можно как-то так:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками select sql или задайте свой вопрос.

Похожие

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2020 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2020.1.14.35781

В моей таблице, у меня есть Collection_Date и Tag_Date поле, оба типа date .

Мне нужно запросить эту таблицу, разделяя даты в его компонент месяц, день и год, но до сих пор сохраняя различия между Collection_Date датами и Tag_Date датами, и я не хочу повторения.

Я попытался это:

Тем не менее, это возвращает только строки с уникальным Collection_Date и Tag_Date .

То , что я думаю , что я хочу, чтобы разделить его на два запрос, один SELECT DISTINCT Инга Collection_Date и один для Tag_Date . Тем не менее, я бы очень хотел , чтобы избежать нескольких запросов, если это возможно.

Как я могу это сделать?

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

Или теперь с некоторыми добавил дифференциацию. Она возвращает различные даты и поле типа, указывающие, относится ли дата к тегу, коллекции, или оба.

Этот запрос возвращает все уникальные collection_date и tag_date. Если collection_date такого же, как tag_date они оба вернулись. Запрос также возвращает какой тип даты, когда она:

Если вы хотите только один tag_date или collection_date, когда они имеют дату в общем, то вы можете использовать

Sql 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 , из скриншота, приведенного выше видно, что запрос вернул дублирующие результаты внутри каждого столбца, потому что:

  • Bachelors и Developer — это уникальная комбинация;
  • Bachelors и Programming — это уникальная комбинация и т.д.

Пример 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 :

Данная публикация представляет собой перевод статьи « MySQL Distinct » , подготовленной дружной командой проекта Интернет-технологии.ру

Помогите сформировать sql запрос

— это работает, но выбирается только поле news, а мне надо id, news, reg, name, comment,date_add

— этот не работает

2 ответа 2

DISTINCT — это уникальность по всем полям ( практически тоже самое что GROUP BY по всем полям )

То что хотите, можно как-то так:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками select sql или задайте свой вопрос.

Похожие

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2020 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2020.1.17.35809

В моей таблице, у меня есть Collection_Date и Tag_Date поле, оба типа date .

Мне нужно запросить эту таблицу, разделяя даты в его компонент месяц, день и год, но до сих пор сохраняя различия между Collection_Date датами и Tag_Date датами, и я не хочу повторения.

Я попытался это:

Тем не менее, это возвращает только строки с уникальным Collection_Date и Tag_Date .

То , что я думаю , что я хочу, чтобы разделить его на два запрос, один SELECT DISTINCT Инга Collection_Date и один для Tag_Date . Тем не менее, я бы очень хотел , чтобы избежать нескольких запросов, если это возможно.

Как я могу это сделать?

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

Или теперь с некоторыми добавил дифференциацию. Она возвращает различные даты и поле типа, указывающие, относится ли дата к тегу, коллекции, или оба.

Этот запрос возвращает все уникальные collection_date и tag_date. Если collection_date такого же, как tag_date они оба вернулись. Запрос также возвращает какой тип даты, когда она:

Если вы хотите только один tag_date или collection_date, когда они имеют дату в общем, то вы можете использовать

Mysql 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 , из скриншота, приведенного выше видно, что запрос вернул дублирующие результаты внутри каждого столбца, потому что:

  • Bachelors и Developer — это уникальная комбинация;
  • Bachelors и Programming — это уникальная комбинация и т.д.

Пример 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 :

Данная публикация представляет собой перевод статьи « MySQL Distinct » , подготовленной дружной командой проекта Интернет-технологии.ру

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

В настоящее время есть это:

Который сводит мои результаты с 9208 до 7848, так что работает нормально.

У меня есть 3 или 4 таблицы с примерно 10000 строками в каждой, и мы сейчас собираемся создать одну таблицу «клиентов». Я делаю скрипт для «импорта» всех этих строк в таблицу клиентов.

Строки, которые мне нужны, например, «имя пользователя», «номер», «название» и т. д.

Они не должны быть уникальными, просто электронная почта.

Но это вернуло больше строк, чем раньше, как мне это сделать?

Базы данных

В этом учебном пособии вы узнаете, как использовать MySQL оператор DISTINCT с синтаксисом и примерами.

Описание

MySQL оператор DISTINCT используется для удаления дубликатов из набора результатов. Оператор DISTINCT может использоваться только с операторами SELECT.

Синтаксис

Синтаксис оператор DISTINCT в MySQL:

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

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

Примечание

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

Пример с одним столбцом

Рассмотрим простейший пример MySQL оператора DISTINCT. Мы можем использовать MySQL DISTINCT, чтобы вернуть один столбец, который удаляет дубликаты из набора результатов.

php — MySql Distinct с несколькими полями

Переполнение стека

  1. Около
  2. Продукты

  3. Для команд
  1. Переполнение стека
    Общественные вопросы и ответы

  2. Переполнение стека для команд
    Где разработчики и технологи делятся частными знаниями с коллегами

  3. Вакансии
    Программирование и связанные с ним технические возможности карьерного роста

  4. Талант
    Нанимайте технических специалистов и создавайте свой бренд работодателя

  5. Реклама
    Обратитесь к разработчикам и технологам со всего мира

  6. О компании

Загрузка…

.

sql — Рассчитывать на DISTINCT нескольких полей работают только на MySQL?

Переполнение стека

  1. Около
  2. Продукты

  3. Для команд
  1. Переполнение стека
    Общественные вопросы и ответы

  2. Переполнение стека для команд
    Где разработчики и технологи делятся частными знаниями с коллегами

  3. Вакансии
    Программирование и связанные с ним технические возможности карьерного роста

  4. Талант
    Нанимайте технических специалистов и создавайте свой бренд работодателя

  5. Реклама
    Обратитесь к разработчикам и технологам со всего мира

  6. О компании

Загрузка…

    .

    sql — ВЫБЕРИТЕ DISTINCT для нескольких полей

    Переполнение стека

    1. Около
    2. Продукты

    3. Для команд
    1. Переполнение стека
      Общественные вопросы и ответы

    2. Переполнение стека для команд
      Где разработчики и технологи делятся частными знаниями с коллегами

    3. Вакансии
      Программирование и связанные с ним технические возможности карьерного роста

    4. Талант
      Нанимайте технических специалистов и создавайте свой бренд работодателя

    5. Реклама
      Обратитесь к разработчикам и технологам со всего мира

    6. О компании

    Загрузка…

    .

    Использование MySQL DISTINCT для исключения дубликатов

    Резюме : в этом руководстве вы узнаете, как использовать предложение MySQL DISTINCT в операторе SELECT для удаления повторяющихся строк в наборе результатов.

    Введение в MySQL DISTINCT clause

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

    Вот синтаксис предложения DISTINCT :

     

    SELECT DISTINCT select_list ОТ table_name;

    MySQL DISTINCT примеры

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

    Сначала запросите фамилии сотрудников из таблицы сотрудников , используя следующий оператор SELECT :

     

    SELECT фамилия ОТ сотрудники СОРТИРОВАТЬ ПО фамилия;

    Попробовать

    Как ясно видно из выходных данных, у некоторых сотрудников одинаковая фамилия e.г, Бондур, Фиррелли .

    Этот оператор использует предложение DISTINCT для выбора уникальных фамилий из таблицы сотрудников :

     

    SELECT ОТЛИЧИТЕЛЬНАЯ фамилия ОТ сотрудники СОРТИРОВАТЬ ПО фамилия;

    Попробовать

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

    MySQL DISTINCT и NULL значения

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

    Например, в таблице клиентов у нас есть много строк, в которых state столбец имеет NULL значений.

    Когда вы используете предложение DISTINCT для запроса состояний клиентов, вы увидите уникальные состояния и NULL в виде следующего запроса:

     

    SELECT DISTINCT state ОТ клиентов;

    Попробовать

    MySQL DISTINCT с несколькими столбцами

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

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

     

    SELECT DISTINCT город-государство ОТ клиенты ГДЕ состояние НЕ ПУСТО СОРТИРОВАТЬ ПО государство, город;

    Попробовать

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

     

    SELECT город-государство ОТ клиенты ГДЕ состояние НЕ ПУСТО СОРТИРОВАТЬ ПО государство , город;

    Попробовать

    Предложение DISTINCT vs.Предложение GROUP BY

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

    Следующий оператор использует предложение GROUP BY для выбора уникальных состояний клиентов из таблицы customers .

     

    ВЫБРАТЬ государство ОТ клиенты GROUP BY состояние;

    Попробовать

    Вы можете добиться аналогичного результата, используя предложение DISTINCT :

     

    SELECT DISTINCT государство ОТ клиенты;

    Попробовать

    Вообще говоря, предложение DISTINCT является частным случаем предложения GROUP BY .Разница между предложением DISTINCT и предложением GROUP BY заключается в том, что предложение GROUP BY сортирует набор результатов, а предложение DISTINCT — нет.

    Обратите внимание, что MySQL 8.0 удалил неявную сортировку для предложения GROUP BY . Поэтому, если вы используете MySQL 8.0+, вы обнаружите, что набор результатов вышеуказанного запроса с предложением GROUP BY не отсортирован.

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

     

    ВЫБРАТЬ ОТЛИЧИТЕЛЬНЫЙ государство ОТ клиенты СОРТИРОВАТЬ ПО государство;

    Попробовать

    MySQL DISTINCT и агрегатные функции

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

    Например, чтобы подсчитать уникальные состояния клиентов в США, вы используете следующий запрос:

     

    SELECT COUNT (DISTINCT state) ОТ клиенты ГДЕ country = 'США';

    Попробовать

    MySQL DISTINCT с предложением LIMIT

    Если вы используете предложение DISTINCT с предложением LIMIT , MySQL немедленно прекращает поиск, когда находит количество уникальных строк, указанное в пункт LIMIT .

    Следующий запрос выбирает первые пять непустых уникальных состояний в таблице customers .

     

    ВЫБРАТЬ ОТЛИЧИТЕЛЬНЫЙ государство ОТ клиенты ГДЕ состояние НЕ ПУСТО LIMIT 5;

    Попробовать

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

    • Было ли это руководство полезным?
    • Да Нет

    .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *