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

Есть табличка с сотрудниками:
tabnum, name, famaly

tabnum - уникальный.

Как найти tabnum всех людей с одинаковыми именами и фамилиями?
27 май 09, 10:09    [7232448]     Ответить | Цитировать Сообщить модератору
 Re: выборка записей с одинаковыми полями  [new]
drinkins
Guest
причем уникальным должно быть именно и имя, и фамилия в связке.
т.е. всех Иванов Ивановых и Петров Петровых, к примеру.
27 май 09, 10:11    [7232461]     Ответить | Цитировать Сообщить модератору
 Re: выборка записей с одинаковыми полями  [new]
-=DiM@n=-
Member

Откуда: Москва
Сообщений: 1564
select tabnum
from table t
inner join
(
select name, famaly
from table
group by name, famaly
having count(*) > 1
) x
on t.name = x.name and t.famaly = x.famaly
27 май 09, 10:12    [7232469]     Ответить | Цитировать Сообщить модератору
 Re: выборка записей с одинаковыми полями  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
select t.tabnum, t.name, t.famaly
from табличка t
inner join
  (
  select name, famaly
  from табличка
  group by name, famaly
  having count(*) > 1
  ) g on t.name = g.name
       and t.famaly = g.famaly
order by t.name, t.famaly, t.tabnum
27 май 09, 10:14    [7232483]     Ответить | Цитировать Сообщить модератору
 Re: выборка записей с одинаковыми полями  [new]
drinkins
Guest
огромное спасибо!
27 май 09, 10:41    [7232691]     Ответить | Цитировать Сообщить модератору
 Re: выборка записей с одинаковыми полями  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
WITH Namesake([tabnum], [name], [famaly], [count]) AS
(
 SELECT tabnum, name, famaly, COUNT(*) OVER(PARTITION BY [name], [famaly])
 FROM табличка t
)
SELECT [tabnum], [name], [famaly], [count]
FROM Namesake
WHERE [count]>1
ORDER BY [count] DESC, [name], [famaly], [tabnum];
Не проверял!
27 май 09, 10:48    [7232746]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить