Ключевое слово SQL Distinct - PullRequest
0 голосов
/ 18 октября 2018

Я был бы благодарен, если бы кто-нибудь помог мне классифицировать слово «Отличительный».Я изучаю SQL и понимаю, что он делает, но это функция, атрибут или ключевое слово, как SELECT, FROM и WHERE и т. Д. Я предполагаю, что это ключевое слово, и в этом случае, что значит писать два ключевых слова вместе (то есть SELECT DISTINCT <<em> кортеж атрибутов > ОТ <<em> отношение >)?

Ответы [ 4 ]

0 голосов
/ 18 октября 2018

В языке это ключевое слово, но обратите внимание, что по сути эти ключевые слова языка служат для обозначения вызовов операторов («реляционные» операторы, хотя псевдореляционные действительно более точные) и операторов функции ...

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

примеры

SELECT ...: вызов проекции "bag" / SELECT DISTINCT ...: вызов "реляционной" проекции.

ГДЕ a НЕ ОТЛИЧАЕТСЯ от b: the "более реляционный «оператор равенства (который возвращает истину, если и a, и b равны нулю) / WHERE a = b:« менее реляционный »оператор равенства (который возвращает ложь, если и a, и b равны нулю).

0 голосов
/ 18 октября 2018

Это ключевое слово, и его можно использовать в разных контекстах:

Select distinct field1, field2, field3
from myTable;

В этом контексте возвращаемые данные имеют только 1 строку для каждого отдельного значения значений столбцов field1, field2 и field3.то есть:

field1, field2, field3

1, 2, 3
1, 2, 3
1, 1, 1
1, 2, 1

с отчетливым возвратом:

1, 2, 3
1, 1, 1
1, 2, 1

IOW это как group by для всех полей, включенных в select.

Он также используется с такими агрегатами:

Select count(distinct productId)
from OrderDetails;

Подсчитывает каждый идентификатор продукта только один раз в группе (здесь, в примере, не добавлено никакой специальной группировки).Приведенный выше запрос, например, ответил бы на вопрос, например, сколько наших продуктов было в продаже до сих пор?

0 голосов
/ 18 октября 2018

Это ключевое слово, используемое в основном в двух контекстах:

  • SELECT DISTINCT
  • COUNT(DISTINCT . . .)

В некоторых базах данных онотакже допускается с set-функциями, такими как UNION DISTINCT.Это подчеркивает поведение по умолчанию функции set (которая удаляет дубликаты).

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

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

0 голосов
/ 18 октября 2018

Я провел небольшой поиск и обнаружил, что он называется: Условные выражения: DISTINCT Предикат .Не уверен, что это то, что вы ищете.

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