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.
Here is the syntax that we can use to get the latest date records in SQL Server. Select column_name, .. From table_name Order By date_column Desc; Now, let's use the given syntax to select the last 10 records from our sample table.
You need to use DISTINCT keyword to select distinct dates from datetime column in a table. Now you can insert some records in the table using insert command. Display all records from the table using select statement.
All titles are distinct. There is no way this query can be executed reasonably. Either DISTINCT doesn't work (because the added extended sort key column changes its semantics), or ORDER BY doesn't work (because after DISTINCT we can no longer access the extended sort key column).
Yes, SQL Server. Yes, all of the matching rows should be updated. It's just setting a bit from 1 to 0.
This is actually pretty easy to do using simple aggregation, like so:
select URL, max(DateVisited)
from <table>
group by URL
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With