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

Откуда:
Сообщений: 3
Добрый день!
есть таблица (названия фирм, емаилы) и у фирм они повторяются.
т.е. у двух фирм может быть один емаил.
Как сделать запрос что б выводил фирма, емаил и емаил не дублировался. т.е. выдавал одну строку, и пофиг какую фирму.
14 дек 16, 18:04    [20003898]     Ответить | Цитировать Сообщить модератору
 Re: Исключить повторяющиеся записи  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4804
Rudik84
Добрый день!
есть таблица (названия фирм, емаилы) и у фирм они повторяются.
т.е. у двух фирм может быть один емаил.
Как сделать запрос что б выводил фирма, емаил и емаил не дублировался. т.е. выдавал одну строку, и пофиг какую фирму.


de_dup = ROW_NUMBER() OVER (PARTITION BY email ORDER BY (SELECT NULL))
14 дек 16, 18:07    [20003916]     Ответить | Цитировать Сообщить модератору
 Re: Исключить повторяющиеся записи  [new]
Rudik84
Member

Откуда:
Сообщений: 3
a_voronin,
а можно увидеть весь запрос? как то не совсем понял
14 дек 16, 18:12    [20003937]     Ответить | Цитировать Сообщить модератору
 Re: Исключить повторяющиеся записи  [new]
Jafa
Member

Откуда:
Сообщений: 132
Rudik84
a_voronin,
а можно увидеть весь запрос? как то не совсем понял

если не смущают производные таблицы, то как так
WITH tmp AS
(
	SELECT 'cmppppp@bk.ru' AS email, 'OxCompany' AS company_name
	UNION
	SELECT 'cmppppp@bk.ru', 'LexStart'
	UNION
	SELECT '213sss@mail.ru', 'Магазин ''Рыба'''
)
SELECT a.*
FROM
(
	SELECT 
		ROW_NUMBER() OVER(PARTITION BY tmp.email ORDER BY (SELECT NULL)), 
		tmp.company_name 
	FROM tmp
) a(nm, nmcompany)
WHERE a.nm = 1
14 дек 16, 19:11    [20004109]     Ответить | Цитировать Сообщить модератору
 Re: Исключить повторяющиеся записи  [new]
Rudik84
Member

Откуда:
Сообщений: 3
Jafa
Rudik84
a_voronin,
а можно увидеть весь запрос? как то не совсем понял

если не смущают производные таблицы, то как так
WITH tmp AS
(
	SELECT 'cmppppp@bk.ru' AS email, 'OxCompany' AS company_name
	UNION
	SELECT 'cmppppp@bk.ru', 'LexStart'
	UNION
	SELECT '213sss@mail.ru', 'Магазин ''Рыба'''
)
SELECT a.*
FROM
(
	SELECT 
		ROW_NUMBER() OVER(PARTITION BY tmp.email ORDER BY (SELECT NULL)), 
		tmp.company_name 
	FROM tmp
) a(nm, nmcompany)
WHERE a.nm = 1


Спасибо!) написал по своему, но с подсчетом строк! самое оно))) Спасибочки за идею!)
15 дек 16, 00:48    [20005103]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить