Nic*_*k G 2 sql sql-server distinct greatest-n-per-group
我希望根据日期选择一个表的最新记录,但每个网址只有一个不同的列表.表结构是这样的;
ID URL DateVisited
1 google.com 01-01-2016
2 yahoo.com 01-02-2016
3 google.com 12-30-2015
4 google.com 02-01-2016
Run Code Online (Sandbox Code Playgroud)
所以我想要的结果集
google.com 02-01-2016
yahoo.com 01-02-2016
Run Code Online (Sandbox Code Playgroud)
在我的实际查询中我会有更多的条件,但只想在点击日志中获取单个最新记录,而不是列出不同的网址和日期,只是不同的网址和最新日期.
小智 11
使用简单聚合实际上很容易做到这一点,如下所示:
select URL, max(DateVisited)
from <table>
group by URL
Run Code Online (Sandbox Code Playgroud)
这通常使用以下方法完成row_number():
select t.*
from (select t.*,
row_number() over (partition by url order by datevisited desc) as seqnum
from t
) t
where seqnum = 1;
Run Code Online (Sandbox Code Playgroud)
这允许您获取与最新记录关联的所有列。