Удаление дубликатов

Завершено

Хотя строки в таблице всегда должны быть уникальными, при выборе только подмножества столбцов строки результатов могут не быть уникальными, даже если исходные строки являются таковыми. Например, у вас есть таблица поставщиков, в которой город и штат (или провинция) должны быть уникальными, чтобы в любом городе никогда не было больше одного поставщика. Однако если вы просто хотите видеть города и страны или регионы, в которых находятся поставщики, возвращаемые результаты могут не быть уникальными. Предположим, что вы написали следующий запрос:

SELECT City, CountryRegion
FROM Production.Supplier
ORDER BY CountryRegion, City;

Этот запрос может возвращать результаты наподобие следующих:

Город

CountryRegion

Аврора

Канада

Барри

Канада

Брамптон

Канада

Бросар

Канада

Бросар

Канада

Бернаби

Канада

Бернаби

Канада

Бернаби

Канада

Калгари

Канада

Калгари

Канада

...

...

По умолчанию предложение SELECT включает неявное ключевое слово ALL, которое приводит к следующему поведению:

SELECT ALL City, CountryRegion
FROM Production.Supplier
ORDER BY CountryRegion, City;

T-SQL также поддерживает альтернативное ключевое слово DISTINCT, которое удаляет все повторяющиеся строки результатов:

SELECT DISTINCT City, CountryRegion
FROM Production.Supplier
ORDER BY CountryRegion, City;

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

Город

CountryRegion

Аврора

Канада

Барри

Канада

Брамптон

Канада

Бросар

Канада

Бернаби

Канада

Калгари

Канада

...

...