SQL选择Distinct列和最新日期

时间:2016-07-21 13:26:10

标签: 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

因此,对于我的结果集,我希望

google.com     02-01-2016
yahoo.com      01-02-2016

我在实际查询中会有更多的条件,但只想在点击日志中获取单个最新记录,而不是列出不同的网址和日期,只是不同的网址和最新日期。

2 个答案:

答案 0 :(得分:7)

使用简单聚合实际上很容易做到这一点,如下所示:

select URL, max(DateVisited)
from <table>
group by URL

答案 1 :(得分:-1)

通常使用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;

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