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

Откуда: Москва
Сообщений: 24
добрый день коллеги, помогите разобраться с выборкой.

есть таблица
CREATE TABLE [dbo].[head](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[SuppliersId] [int] NOT NULL)


нужно получить список Id с максимальными значениями, у которых SuppliersId имеет уникальное значение.
SuppliersId это ссылка на таблицу.

переводя на человеческий язык нужно выбрать список последних Id из [head] с уникальными записями из [Suppliers]
27 май 17, 17:49    [20517193]     Ответить | Цитировать Сообщить модератору
 Re: выборка уникальных значений по второму полю  [new]
aleks2
Guest
Открой для себя
group by
27 май 17, 17:57    [20517202]     Ответить | Цитировать Сообщить модератору
 Re: выборка уникальных значений по второму полю  [new]
rawman
Member

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

ни дистинкт ни гроуп бай не работают
т.к. выводим одно поле, а уникальность порверять нужно по другому, которое выводить ненадо
27 май 17, 18:01    [20517204]     Ответить | Цитировать Сообщить модератору
 Re: выборка уникальных значений по второму полю  [new]
aleks2
Guest
rawman
aleks2,

ни дистинкт ни гроуп бай не работают
т.к. выводим одно поле, а уникальность порверять нужно по другому, которое выводить ненадо

Проблемы не в сортирах - проблемы в головах.

with t as ( select SuppliersId, Id = max(Id) from dbo.head group by SuppliersId)
  select id from t;
27 май 17, 18:08    [20517208]     Ответить | Цитировать Сообщить модератору
 Re: выборка уникальных значений по второму полю  [new]
bideveloper
Member

Откуда:
Сообщений: 503
select id from head as h1
where id in (select max(id) from head as h2 where h2.SuppliersId = h1.SuppliersId)
27 май 17, 18:13    [20517214]     Ответить | Цитировать Сообщить модератору
 Re: выборка уникальных значений по второму полю  [new]
rawman
Member

Откуда: Москва
Сообщений: 24
проблемы действительно в головах....

всем спасибо.
27 май 17, 18:47    [20517240]     Ответить | Цитировать Сообщить модератору
 Re: выборка уникальных значений по второму полю  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31371
aleks2, bideveloper,

А зачем подзапросы???
select SuppliersId, max(Id) as Id from dbo.head group by SuppliersId
27 май 17, 19:07    [20517259]     Ответить | Цитировать Сообщить модератору
 Re: выборка уникальных значений по второму полю  [new]
bideveloper
Member

Откуда:
Сообщений: 503
alexeyvg,
потому что rawman не нужно выводить поле SuppliersId )
27 май 17, 20:02    [20517330]     Ответить | Цитировать Сообщить модератору
 Re: выборка уникальных значений по второму полю  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31371
bideveloper
alexeyvg,
потому что rawman не нужно выводить поле SuppliersId )
Так можно и не выводить, если не надо.
select max(Id) as Id from dbo.head group by SuppliersId
27 май 17, 21:07    [20517373]     Ответить | Цитировать Сообщить модератору
 Re: выборка уникальных значений по второму полю  [new]
bideveloper
Member

Откуда:
Сообщений: 503
alexeyvg,
да, вы правы, что-то я попутал )
27 май 17, 22:42    [20517486]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить