Перейти к содержимому

Урок по T-SQL: когда выполняется оператор DISTINCT

BeardedDev

0:00 / 0:00

Урок по T-SQL: когда выполняется оператор DISTINCT

837 просмотров · 4 года назад
BeardedDev
11,5 тыс. подписчиков
837 просмотров · 4 года назад
Ещё одно видео от BeardedDev, посвящённое урокам по проектированию данных, бизнес-аналитике, программированию на T-SQL и анализу данных. В этом видео я рассказываю о том, когда оценивается DISTINCT. Иногда я вижу, как люди пишут запросы с уникальным идентификатором, а затем удивляются, почему результаты содержат дубликаты (помимо уникального идентификатора, конечно). Понимание того, как обрабатываются данные, очень важно для написания точных SQL-запросов. Я представляю производные таблицы, которые берут результаты запроса, создающего уникальные строки с помощью DISTINCT, а затем добавляют уникальный идентификатор с помощью ROW_NUMBER. Это видео было создано на SQL Server 2019 с использованием SQL Server Management Studio, но вы можете следовать инструкциям, используя Azure SQL Database или Azure Synapse Analytics, а также другой клиентский инструмент, например Azure Data Studio. Если вы хотите следовать инструкциям в видео, вы можете использовать приведенные ниже SQL-скрипты: IF OBJECT_ID(N'dbo.Customer', N'U') IS NOT NULL DROP TABLE dbo.Customer; СОЗДАТЬ ТАБЛИЦУ dbo.Customer ( FirstName VARCHAR(50), LastName VARCHAR(50) ); ВСТАВИТЬ В dbo.Customer (FirstName, LastName) ЗНАЧЕНИЯ ('Sarah', 'Power'), ('Sarah', 'Power'), ('Nathan', 'Jones'), ('Nathan', 'Jones'), ('Nathan', 'Jones'), ('Nathan', 'Jones'), ('Michelle', 'Arnold'), ('Michelle', 'Arnold'), ('Michelle', 'Arnold'); -- уникальные клиенты ВЫБРАТЬ DISTINCT FirstName, LastName FROM dbo.Customer; -- уникальные клиенты с уникальным идентификатором SELECT ROW_NUMBER() OVER(ORDER BY FirstName, LastName) AS RowNum, FirstName, LastName FROM ( SELECT DISTINCT FirstName, LastName FROM dbo.Customer ) AS D;