Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Запрос - Исключение из выборки дублей  [new]
vdpmr
Member

Откуда:
Сообщений: 5
Здравствуйте. Помогите пожалуйста с запросом.

Есть таблица такого вида:

fam im ot num
Иванов Иван Иванович 1
Петров Петр Петрович 5
Алексеев Алексей Алексеевич 4
Иванов Иван Иванович 2
Петров Петр Петрович 3

нужно выбрать записи, исключая дубли по ФИО, оставляя запись с минимальным num

то есть в результате должны выбраться только эти записи:

Иванов Иван Иванович 1
Алексеев Алексей Алексеевич 4
Петров Петр Петрович 3

понимаю, что запрос скорее всего простой, но тем не менее не получается написать
буду очень признателен за помощь
9 июн 18, 10:05    [21481075]     Ответить | Цитировать Сообщить модератору
 Re: Запрос - Исключение из выборки дублей  [new]
Посетитель
Member

Откуда:
Сообщений: 1384
vdpmr,

select top 1 with ties *
  from your_table
 order by row_number()over(partition by fam,im,ot order by num)



а шо если ФИО одинаковое, а люди разные?
9 июн 18, 10:08    [21481081]     Ответить | Цитировать Сообщить модератору
 Re: Запрос - Исключение из выборки дублей  [new]
vdpmr
Member

Откуда:
Сообщений: 5
Посетитель, на самом деле в таблице у каждого человека еще есть его уникальный ID.
Не стал его добавлять для упрощения задания.
Мне просто смысл нужно было понять.
Спасибо за ответ. Сейчас буду пробовать.
9 июн 18, 10:19    [21481112]     Ответить | Цитировать Сообщить модератору
 Re: Запрос - Исключение из выборки дублей  [new]
Посетитель
Member

Откуда:
Сообщений: 1384
vdpmr,

по ID как раз и проще, и правильнее
9 июн 18, 10:53    [21481205]     Ответить | Цитировать Сообщить модератору
 Re: Запрос - Исключение из выборки дублей  [new]
aleks222
Member

Откуда:
Сообщений: 855
Посетитель
vdpmr,

select top 1 with ties *
  from your_table
 order by row_number()over(partition by fam,im,ot order by num)



а шо если ФИО одинаковое, а люди разные?


Садись, неуд

select fam,im,ot, num = min(num)
  from your_table
 group by fam,im,ot
9 июн 18, 13:59    [21481919]     Ответить | Цитировать Сообщить модератору
 Re: Запрос - Исключение из выборки дублей  [new]
Посетитель
Member

Откуда:
Сообщений: 1384
aleks222,

ну дык, надо ж было дать тебе повод почесать ЧСВ
9 июн 18, 14:28    [21482031]     Ответить | Цитировать Сообщить модератору
 Re: Запрос - Исключение из выборки дублей  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
Посетитель
aleks222,

ну дык, надо ж было дать тебе повод почесать ЧСВ

Ты самый медленный вариант выборки дал, как тут не почесать...
9 июн 18, 15:20    [21482213]     Ответить | Цитировать Сообщить модератору
 Re: Запрос - Исключение из выборки дублей  [new]
Посетитель
Member

Откуда:
Сообщений: 1384
Руслан Дамирович
Ты самый медленный вариант выборки дал,как тут не почесать...

Extremis malis extrema remedia
9 июн 18, 15:31    [21482246]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить