2011-12-21 4 views
0

Это моя таблица структуры в SQL Server 2008:ищет слово SQL запросов

+--------+-----+---------------------+ 
| user | val |  time   | 
+--------+-----+---------------------+ 
|  kk | 21 | 2011-12-12 12:23:00 | 
|  dd | 33 | 2011-12-12 12:23:00 | 
|  kk | 22 | 2011-12-12 12:23:30 | 
|  dd | 33 | 2011-12-12 12:23:30 | 
+--------+-----+---------------------+ 

Эта запись в таблице обновляется другим приложением каждые 30 секунд.

Теперь я хочу запросить последние записи всего пользователя в таблице.

Любой способ реализовать его, используя только один запрос sql?

+0

Нам нужно узнать больше о том, что представляют собой эти столбцы и что они п. – wallyk

ответ

2

Это будет список пользователя и последнюю запись времени

select user,max(time) 
from table 
group by user 

Если вам нужна связанные данные, попробуйте это

select a.* 
from table a 
join (select user,max(time) as TheLatest 
     from table 
     group by user) xx 
on a.time=xx.theLatest and xx.user=a.user 
+0

круто, только то, что я хочу – hguser

0
SELECT * FROM 
(
    SELECT 

      USER 
      ,Val 
      ,ROW_NUMBER() OVER (PARTITION BY User,Time ORDER BY Time DESC) AS SlNo 
    FROM myTable 
) result 
WHERE  SlNo = 1 
0

TRY ЭТУ

DECLARE @tbl table(ID INT,dtm datetime) 

    insert into @tbl 
    values (1,'2011-09-14 00:59:00'), 
      (2,'2011-09-15'), 
      (2,'2011-09-15 05:10:00'), 
      (5,'2011-09-16 05:10:00'), 
      (8,'2011-10-29 05:10:00'), 
      (5,'2011-10-29'), 
      (6,'2011-10-30') 


    select MAX(dtm),ID from @tbl 
     GROUP BY ID 
Смежные вопросы