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

Откуда:
Сообщений: 3
Добрый день. Знаю эта тема поднималась не раз но не могу найти того что нужно)
И так вопрос: Существует таблица

id, telephone_1, name
1, 111, Ivan
2, 122, Jora
3, 123, Sasha
4, 111, Ivan
5, 122, Jora
6, 134, Volodea

Необходим код который выберет только уникальные значения (Неповторяющиеся) и вывод чтоб был подобный:

id,telephone_1, name
3,123, Sasha
6, 134, Volodea
8 фев 18, 11:24    [21175678]     Ответить | Цитировать Сообщить модератору
 Re: Удаление повторяющихся значений  [new]
Гигабайт Мегабайтович Килобайтов
Member [заблокирован]

Откуда:
Сообщений: 5975
а если 7,111,Sasha ?
8 фев 18, 11:25    [21175685]     Ответить | Цитировать Сообщить модератору
 Re: Удаление повторяющихся значений  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4535
roma1905, FAQ
8 фев 18, 11:25    [21175686]     Ответить | Цитировать Сообщить модератору
 Re: Удаление повторяющихся значений  [new]
roma1905
Member

Откуда:
Сообщений: 3
Выбираем и сравниваем только по столбцу 2 - telephone_1
8 фев 18, 11:26    [21175691]     Ответить | Цитировать Сообщить модератору
 Re: Удаление повторяющихся значений  [new]
roma1905
Member

Откуда:
Сообщений: 3
roma1905
Выбираем и сравниваем только по столбцу 2 - telephone_1

соответственно не будет выводиться строка 7
8 фев 18, 11:38    [21175739]     Ответить | Цитировать Сообщить модератору
 Re: Удаление повторяющихся значений  [new]
waszkiewicz
Member

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

;with cte (id,ph,name) as
(
select	1, 111, 'Ivan'
union all
select 2, 122, 'Jora'
union all
select 3, 123, 'Sasha'
union all
select 4, 111, 'Ivan'
union all
select 5, 122, 'Jora'
union all
select 6, 134, 'Volodea'
)
select max(id) id,ph,name from cte
group by ph,name
having count(ph)=1
8 фев 18, 11:52    [21175791]     Ответить | Цитировать Сообщить модератору
 Re: Удаление повторяющихся значений  [new]
iap
Member

Откуда: Москва
Сообщений: 46951
WITH CTE AS (SELECT *,C=COUNT(*)OVER(PARTITION BY telephone_1, name) FROM T)
SELECT id, telephone_1, name
FROM CTE WHERE C=1;
8 фев 18, 12:33    [21175914]     Ответить | Цитировать Сообщить модератору
 Re: Удаление повторяющихся значений  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1067
iap, ему походу только уникальные нужны
8 фев 18, 13:06    [21176039]     Ответить | Цитировать Сообщить модератору
 Re: Удаление повторяющихся значений  [new]
iap
Member

Откуда: Москва
Сообщений: 46951
waszkiewicz
iap, ему походу только уникальные нужны
В чём подвох?
8 фев 18, 13:12    [21176060]     Ответить | Цитировать Сообщить модератору
 Re: Удаление повторяющихся значений  [new]
iap
Member

Откуда: Москва
Сообщений: 46951
roma1905
Выбираем и сравниваем только по столбцу 2 - telephone_1
Значит, так:
WITH T AS(SELECT * FROM(VALUES
 (1, 111, 'Ivan')
,(2, 122, 'Jora')
,(3, 123, 'Sasha')
,(4, 111, 'Ivan')
,(5, 122, 'Jora')
,(6, 134, 'Volodea')
,(7, 111, 'Sasha')
)A(id, telephone_1, name)
)
,CTE AS (SELECT *,C=COUNT(*)OVER(PARTITION BY telephone_1/*, name*/) FROM T)
SELECT id, telephone_1, name
FROM CTE WHERE C=1;
8 фев 18, 13:24    [21176132]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить