If I have a table with the following fields
ID, SomeFK, SomeTime
How would I write a query return the latest/top 3 items (based on SomeTi
SELECT SomeFk, SomeTime
FROM
(
SELECT *, ROW_NUMBER() OVER (PARTITION BY SomeFK ORDER BY sometime desc) rn
FROM yourtable
) v
WHERE rn<=3
ORDER BY somefk, rn
For SQL 2000, I recommend upgrading to a supported platform.
But if you insist.
select *
from yourtable t1
where
(select COUNT(*)
from yourtable
where somefk = t1.somefk
and sometime>=t1.sometime
) <=3