Назад | Перейти на главную страницу

SQL Server 22005: первые 1 * для уникального столбца?

У меня есть данные в таблице (ниже), и мне нужно выбрать самое последнее обновление от каждого пользователя. Здесь данные отсортированы по дате, поэтому в столбце SomeData указано самое последнее уникальное значение каждого пользователя. Top 1 SomeData не будет работать, потому что вернется только для одного пользователя. Возможно ли это даже с использованием только SQL?

Date        SomeData    User    ...
8/5/2010    2.2     UserC
4/5/2010    1.1     UserA
3/5/2010    9.4     UserB
1/5/2010    3.7     UserA
1/5/2010    6.1     UserB

Быстрый взлом - что-то вроде этого должно сработать, если ваше имя исходной таблицы - 'd', вы можете использовать row_number (), чтобы упорядочить результаты, а затем запросить производную таблицу:

select * 
from
(
  select Date, Data, [User], row_number() over(partition by [User] order by [Date] desc) rownumber
  from d
) x
where rownumber = 1