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

Откуда: Latvija
Сообщений: 145
Дано
table1
id name
111 aaa
222 bbb
333 ccc
444 aaa
555 ddd
666 bbb

И результат нужен в виде уникального значения поля name
aaa
bbb
ccc
ddd
При этом к каждому name нужно вывести уникальное значение.
Лучше всего было бы
1 aaa
2 bbb
3 ccc
4 ddd

но можно и id значение.
111 aaa
222 bbb
333 ccc
555 ddd

Я пробовала использовать ROW_NUMBER() OVER (ORDER BY [table1].[name]), но в результате все равно вижу и 'aaa' 2 раза и 'bbb'

Как это можно сделать?
7 май 13, 13:39    [14267495]     Ответить | Цитировать Сообщить модератору
 Re: Исключить одинаковые значения - не получается составить запрос  [new]
londinium
Member

Откуда: Киев
Сообщений: 1199
SELECT DISTINCT [NAME]FROM TABLE1
7 май 13, 13:40    [14267508]     Ответить | Цитировать Сообщить модератору
 Re: Исключить одинаковые значения - не получается составить запрос  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
select ROW_NUMBER() OVER (ORDER BY name), name
from (select distinct name from table1) t
7 май 13, 13:41    [14267518]     Ответить | Цитировать Сообщить модератору
 Re: Исключить одинаковые значения - не получается составить запрос  [new]
Naile
Member

Откуда: Latvija
Сообщений: 145
londinium,

Со служебным словом DISTINCT я ОЧЕНЬ хорошо знакома.
Если бы нужно было выбрать ТОЛЬКО name - проблем нет. Но мне необходимо для каждого значения уникальный номер вывести.
7 май 13, 13:44    [14267536]     Ответить | Цитировать Сообщить модератору
 Re: Исключить одинаковые значения - не получается составить запрос  [new]
aleks2
Guest
SELECT [NAME], min(ID) as id FROM TABLE1 group by [NAME]
7 май 13, 13:47    [14267557]     Ответить | Цитировать Сообщить модератору
 Re: Исключить одинаковые значения - не получается составить запрос  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
WITH T AS(SELECT * FROM(VALUES
 (111,'aaa')
,(222,'bbb')
,(333,'ccc')
,(444,'aaa')
,(555,'ddd')
,(666,'bbb')
)TT(id,name))


SELECT TOP(1) WITH TIES id=DENSE_RANK()OVER(ORDER BY name),name
FROM T
ORDER BY ROW_NUMBER()OVER(PARTITION BY name ORDER BY name);
7 май 13, 13:49    [14267569]     Ответить | Цитировать Сообщить модератору
 Re: Исключить одинаковые значения - не получается составить запрос  [new]
Naile
Member

Откуда: Latvija
Сообщений: 145
aleks2,

вот был бы идеальный для меня вариант!!! но к сожалению у меня id типа uniqueidentifier
7 май 13, 13:52    [14267586]     Ответить | Цитировать Сообщить модератору
 Re: Исключить одинаковые значения - не получается составить запрос  [new]
Naile
Member

Откуда: Latvija
Сообщений: 145
Паганель,

Решение работает, но к сожалению, не в моем случае.
Я все-таки не полностью показала задачу. Прощу прощения.
На самом деле там еще идут связки с другими таблицами, где идет связь по id из table1.
А если
from (select distinct name from table1) t
изменить на
from (select distinct name, id from table1) t
, то те же двойные значения и вылезают. Но в случае отсутствия связок с другими таблицами, такой запрос сработает.
7 май 13, 13:57    [14267642]     Ответить | Цитировать Сообщить модератору
 Re: Исключить одинаковые значения - не получается составить запрос  [new]
londinium
Member

Откуда: Киев
Сообщений: 1199
Ну тогда расскажите толком, что Вам нужно вывести. Дубликаты убили уже несколькими способами. ЧТо не так?
7 май 13, 14:00    [14267661]     Ответить | Цитировать Сообщить модератору
 Re: Исключить одинаковые значения - не получается составить запрос  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
Naile
aleks2,

вот был бы идеальный для меня вариант!!! но к сожалению у меня id типа uniqueidentifier
min(cast(Id as char(36)))
7 май 13, 14:01    [14267672]     Ответить | Цитировать Сообщить модератору
 Re: Исключить одинаковые значения - не получается составить запрос  [new]
angel_zar
Member

Откуда: Барнаул
Сообщений: 902
Понятно, что ничего не понятно.
Телепаты в отпуске, так что выполните хотя бы пункт 6 рекомендаций оформления сообщений.
7 май 13, 14:03    [14267680]     Ответить | Цитировать Сообщить модератору
 Re: Исключить одинаковые значения - не получается составить запрос  [new]
Naile
Member

Откуда: Latvija
Сообщений: 145
Паганель,

Огромное спасибо!!!!!
Сработало!!!
7 май 13, 14:04    [14267689]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить