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

Откуда:
Сообщений: 73
Всем привет. Не могу сообразить. Есть такая таблица
id id_Name
11
172
1193
5541
7782

Мне нужно, что бы была такая таблица на вывод
id id_Name
11
172
1193

Или так
id id_Name
172
1193
5541

В общем мне важен что бы был id, но не важно какой по счету. Group by тут не прокатывает, т.к. у меня нет цели вывести только id_Name, в других случаях он не работает. Distinct тоже в это случае не отрабатывает, т.к. id уникальный и поэтому дубль данных там нет. Вхождение в множество тоже пробовал, опять выводит все id. Как решить задачу?
27 фев 13, 13:30    [13988131]     Ответить | Цитировать Сообщить модератору
 Re: Удалить дубликаты и оставить id  [new]
titans
Member

Откуда:
Сообщений: 73
Забыл сказать самое важное, мне нужно убрать повторение id_Name.
27 фев 13, 13:31    [13988152]     Ответить | Цитировать Сообщить модератору
 Re: Удалить дубликаты и оставить id  [new]
Glory
Member

Откуда:
Сообщений: 104751
titans
Group by тут не прокатывает, т.к. у меня нет цели вывести только id_Name, в других случаях он не работает.

Работает. Если синтаксис соблюдать. Например, использовать аггрегатные функции
Так, как вам пишет сервер в сообщении об ошибке.
27 фев 13, 13:32    [13988163]     Ответить | Цитировать Сообщить модератору
 Re: Удалить дубликаты и оставить id  [new]
DF96F707-762F-4C81-8F2C-1762F905
Guest
select min(id), id_Name from .. group by id_Name
27 фев 13, 13:33    [13988180]     Ответить | Цитировать Сообщить модератору
 Re: Удалить дубликаты и оставить id  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
titans,

пронумеровать:
ROW_NUMBER()OVER(PARTITION BY id_Name ORDER BY id)
, оставить только с номером 1.
Непонятно, зачем id, если неважно, какой по счёту
27 фев 13, 13:34    [13988188]     Ответить | Цитировать Сообщить модератору
 Re: Удалить дубликаты и оставить id  [new]
gang
Member

Откуда:
Сообщений: 1394
DF96F707-762F-4C81-8F2C-1762F905
select min(id), id_Name from .. group by id_Name

скорее наоборот select id, min(id_Name) from .. group by id
27 фев 13, 17:18    [13990128]     Ответить | Цитировать Сообщить модератору
 Re: Удалить дубликаты и оставить id  [new]
gang
Member

Откуда:
Сообщений: 1394
Не, все правильно было. Беру свой пост обратно.
27 фев 13, 17:20    [13990143]     Ответить | Цитировать Сообщить модератору
 Re: Удалить дубликаты и оставить id  [new]
Exproment
Member

Откуда:
Сообщений: 416
titans,
;with cte(id, id_Name) as(
	select 1,	1
	union all select 17,	2
	union all select 119,	3
	union all select 554,	1
	union all select 778,	2
)
select	top(1) with ties 
	*
from	cte
order by ROW_NUMBER() over(partition by id_Name order by id)
28 фев 13, 03:06    [13991878]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить