Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
  • Страница:
  • 1

ТЕМА:

Выбор уникальных значений (DISTINCT) 2 года 1 мес. назад #177

  • Олег Коровяков
  • Олег Коровяков аватар Автор темы
  • Не в сети
  • Автор сайта
  • Автор сайта
  • Сообщений: 280
  • Репутация: 1
  • Спасибо получено: 1
Для выбора уникальных значений определенных колонок, совместно с инструкцией SELECT нужно использовать команду DISTINCT. Данные пример демонстрирует различные варианты использования DISTINCT в SQL Server.



-- таблица для демонстрации работы примера
DECLARE @t AS TABLE (id int identity primary key, first_name nvarchar(50), last_name nvarchar(50), age int);

-- заполняем таблицу данными
INSERT INTO @t
SELECT 'Василий', 'Пупкин', 18;
INSERT INTO @t
SELECT 'Василий', 'Абрамов', 22;
INSERT INTO @t
SELECT 'Василий', 'Иванов', 18;
INSERT INTO @t
SELECT 'Маша', 'Пупкина', 17;
INSERT INTO @t
SELECT 'Маша', 'Швалева', 17;
INSERT INTO @t
SELECT 'Маша', 'Мишкина', 98;
INSERT INTO @t
SELECT 'Федя', 'Петров', 10;
INSERT INTO @t
SELECT 'Федя', 'Кбайтов', 27;
INSERT INTO @t
SELECT 'Федя', 'Митрофанофф', 27;

-- собственно сам пример

-- выбираем все данные
SELECT * FROM @t;

-- выбираем только уникальные имена
SELECT DISTINCT(first_name) FROM @t;

-- выбираем только уникальные имена и возраст
SELECT DISTINCT first_name, age FROM @t;

-- выбираем только уникальные имена и возраст
-- сортируем результат по возрасту
SELECT DISTINCT first_name, age FROM @t ORDER BY age DESC;

-- считаем, количество уникальных имен
SELECT COUNT(DISTINCT(first_name)) FROM @t;

-- а вот этот пример работать не будет, т.к. last_name не используется в DISTINCT
SELECT DISTINCT first_name, age FROM @t ORDER BY last_name DESC;
Вложения:

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Олег Коровяков.
  • Страница:
  • 1
Модераторы: Дмитрий

О сайте

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


Контакты

08340. ул.Салютная 17. с.Гнедын.
Киевская обл. Украина.

+38 067 492 4124.
+38 095 065 8860.

info@okwood.com.ua
www.okwood.com.ua

Местоположения


8PM2+7R Гнедин, Kyiv Oblast