какой опцией в sql обозначается выборка по различным значениям all distinct different various

SQL Инструкция SELECT DISTINCT

SQL SELECT DISTINCT

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

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

Синтаксис SELECT DISTINCT

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

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

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1

Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.05021Mexico3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.05023Mexico4

Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

Выбрать без DISTINCT

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

Пример

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

Выбрать с DISTINCT

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

Пример

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

Пример

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

Источник

SQL-Урок 11. Выборка уникальных данных (SELECT DISTINCT)

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

Оператор SQL DISTINCT нашел широкое применение в операторе SQL SELECT, для выборки уникальных значений. Так же используется в агрегатных функциях.

Синтаксис

Примеры

Все примеры будут по этой таблице workers, если не сказано иное:

idnameagesalary
1Дима23400
2Петя25500
3Вася23500
4Коля301000
5Иван27500
6Кирилл281000

Пример

Давайте выберем все уникальные значения зарплат из таблицы workers:

SQL запрос выберет следующие строки:

salary
400
500
1000

Пример

Давайте подсчитаем все уникальные значения зарплат из таблицы workers (их будет 3 штуки: 400, 500 и 1000):

SQL запрос выберет следующие строки:

Пример

Давайте подсчитаем одновременно все уникальные значения зарплат и уникальные значения возрастов и запишем их в разные поля:

SQL запрос выберет следующие строки:

salary_countage_count
35

Пример

Давайте просуммируем все уникальные значения зарплат из таблицы workers:

Источник

Предикаты ALL, DISTINCT, DISTINCTROW и TOP

Эти предикаты задают записи, выбираемые с помощью запросов SQL.

Синтаксис

SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]]
FROM таблица

Инструкция SELECT, содержащая эти предикаты, состоит из следующих частей:

Используется по умолчанию, если вы не указываете ни один из предикатов. Ядро СУБД Microsoft Access выбирает все записи, которые удовлетворяют условиям в инструкции SQL. Следующие два примера эквивалентны и возвращает все записи из таблицы Employees:

Исключает записи, содержащие повторяющиеся данные в выбранных полях. Для включения в результаты запроса значения каждого из полей, перечисленных в инструкции SELECT, должны быть уникальными. Например, у нескольких сотрудников, перечисленных в таблице Employees, могут быть одинаковые фамилии. Если две записи содержат «Глазков» в поле LastName, следующая инструкция SQL возвращает только одну запись, содержащую значение «Глазков»:

Если опустить DISTINCT, этот запрос возвратит обе записи с фамилией «Глазков».

Если предложение SELECT содержит несколько полей, запись будет включена в результаты только в том случае, если сочетание значений всех таких полей уникально.

Выходные данные запроса, использующего DISTINCT, не является обновляемыми и не отражают изменения, внесенные другими пользователями.

Данные не просто повторяют поля, но и не повторяются. Например, можно создать запрос, который соединяет таблицы Customers и Orders по полю CustomerID. Таблица «Клиенты» не содержит повторяют поля CustomerID, но таблица Orders содержит, так как у каждого клиента может быть множество заказов. В следующей SQL показано, как использовать DISTINCTROW для создания списка компаний, у кого есть хотя бы один заказ, но нет сведений об этих заказах:

Если опустить DISTINCTROW, этот запрос создаст несколько строк для каждой компании, от которой поступало более одного заказа.

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

Возвращает записи, относящиеся к верхней или нижней части диапазона, заданного предложением ORDER BY. Предположим, что вы хотите получить имена 25 лучших студентов из группы 1994 г.:

Если не включить предложение ORDER BY, запрос вернет из таблицы Students произвольный набор, включающий 25 записей, которые удовлетворяют предложению WHERE.

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

Вы также можете использовать зарезервированное слово PERCENT для возвращения определенного процента записей из верхней или нижней части диапазона, заданного предложением ORDER BY. Предположим, что вместо 25 лучших студентов вы хотите получить 10 процентов худших студентов группы:

Предикат ASC позволяет вернуть нижние значения. Значение после TOP должно быть целым числом без знака.

TOP не влияет на возможность обновления запроса.

Имя таблицы, из которой извлекаются записи.

Источник

ALL, DISTINCT, DISTINCTROW, TOP predicates (Microsoft Access SQL)

Область применения: Access 2013 | Access 2016

Указывает записи, выбранные SQL запросами.

Синтаксис

ВЫБЕРИТЕ [ВСЕ | DISTINCT | DISTINCTROW | [TOP n [ПРОЦЕНТ]] ТАБЛИЦА FROM

Заявление SELECT, содержащее эти предикаты, содержит следующие части.

ALL: Предполагается, если вы не включаете один из предикатов. Движок базы данных Microsoft Access выбирает все записи, которые соответствуют условиям в SQL.

Следующие два примера эквивалентны и возвращают все записи из таблицы Employees:

DISTINCT: Omits records that contain duplicate data in the selected fields. Чтобы быть включены в результаты запроса, значения для каждого поля, перечисленные в заявлении SELECT, должны быть уникальными. Например, несколько сотрудников, перечисленных в таблице Employees, могут иметь ту же фамилию. Если две записи содержат Смита в поле LastName, в следующем SQL возвращается только одна запись, которая содержит Смит:

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

DISTINCTROW: Omits data based on entire duplicate records, not just duplicate fields. Например, можно создать запрос, который присоединяется к таблицам «Клиенты и заказы» в поле CustomerID. В таблице Клиенты не содержится дублирующихся полей CustomerID, но таблица заказов не содержится, так как у каждого клиента может быть много заказов. В следующем SQL показано, как можно использовать DISTINCTROW для создания списка компаний, которые имеют хотя бы один заказ, но без каких-либо сведений об этих заказах:

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

TOP n [PERCENT]: возвращает определенное количество записей, которые падают в верхней или нижней части диапазона, указанного в пункте ORDER BY. Предположим, вам нужны имена 25 лучших студентов из класса 1994 г.:

Если вы не включаете пункт ORDER BY, запрос возвращает произвольный набор из 25 записей из таблицы Студенты, удовлетворяющие пункту WHERE. Предикат TOP не выбирает между равными значениями. В предыдущем примере, если средние баллы 25-го и 26-го классов одинаковы, запрос возвращает 26 записей. Вы также можете использовать зарезервированное слово PERCENT, чтобы вернуть определенный процент записей, которые падают в верхней или нижней части диапазона, указанного в пункте ORDER BY. Предположим, что вместо 25 лучших учащихся вам нужны нижние 10 процентов класса:

Предикат ASC указывает возврат нижних значений. Значение, которое следует top, должно быть неподписаным integer. TOP не влияет на то, является ли запрос updatable.

таблица. Имя таблицы, из которой извлекаются записи.

Пример

В этом примере создается запрос, который присоединяется к таблицам «Клиенты и заказы» в поле CustomerID. В таблице Клиенты не содержится дублирующихся полей CustomerID, но таблица заказов не содержится, так как у каждого клиента может быть много заказов. Использование DISTINCTROW создает список компаний, которые имеют хотя бы один заказ, но без каких-либо сведений об этих заказах.

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Источник

SQL SELECT с DISTINCT по нескольким столбцам

DISTINCT на несколько столбцов

В SQL несколько полей также могут быть добавлены с предложением DISTINCT. DISTINCT удалит те строки, в которых все выбранные поля идентичны.

Содержание:

Пример: пример оператора SELECT

Вот простой запрос для некоторых выбранных столбцов в таблице заказов, где agent_code = ‘A002’

Код SQL:

Пример таблицы: заказы

Пример: SELECT с помощью DISTINCT по двум столбцам

Код SQL:

Наглядная презентация:

какой опцией в sql обозначается выборка по различным значениям all distinct different various

Пример: ВЫБРАТЬ с помощью DISTINCT по трем столбцам

Код SQL:

Наглядная презентация:

какой опцией в sql обозначается выборка по различным значениям all distinct different various

Пример: SELECT с DISTINCT во всех столбцах первого запроса

Код SQL:

Наглядная презентация:

какой опцией в sql обозначается выборка по различным значениям all distinct different various

SELECT с DISTINCT для нескольких столбцов и предложением ORDER BY

Вы можете использовать заказ по предложению в операторе выбора с несколькими столбцами. Вот пример:

Код SQL:

Наглядная презентация:

какой опцией в sql обозначается выборка по различным значениям all distinct different various

Функция COUNT () и SELECT с помощью DISTINCT для нескольких столбцов

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

Наглядная презентация:

какой опцией в sql обозначается выборка по различным значениям all distinct different various

Упражнения по SQL

Хотите улучшить вышеуказанную статью? Вносите свои заметки / комментарии / примеры через Disqus.

Источник

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

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