SQL Select Distinct column and latest date

丶灬走出姿态 提交于 2019-12-22 13:56:28

问题


I'm looking to select just the latest records of a table based on date, but only one one Distinct listing of each of the urls. The table structure is like this;

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

So for my result set I would want

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

I will have a couple more conditionals in my actual query, but just want to get the single latest records in a hit log, rather than list of distinct urls and dates, just distinct url's and the latest date.


回答1:


This is actually pretty easy to do using simple aggregation, like so:

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



回答2:


This is usually done using 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;

This allows you to get all the columns associated with the latest record.



来源:https://stackoverflow.com/questions/38505558/sql-select-distinct-column-and-latest-date

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!