SQL选择Distinct列和最新日期

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)


Gor*_*off 8

这通常使用以下方法完成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)

这允许您获取与最新记录关联的所有列。