2016-07-21 4 views
1

Я ищу, чтобы выбрать только последние записи таблицы на основе даты, но только один. Отличный список каждого из URL-адресов. Структура таблицы такова:SQL Select Отдельный столбец и последняя дата

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 

у меня будет несколько больше условными в моем фактическом запросе, но просто хочу, чтобы получить одиночные последние записи в журнале хит, а не список отдельных URL-адресов и дат, только отдельные URL-адреса и последние даты.

+0

Возможный дубликат [Извлекает строку, которая имеет значение Max для столбца] (http://stackoverflow.com/questions/121387/fetch-the-row-which-has-the-max-value-for-a-column) –

ответ

6

Это на самом деле очень легко сделать с помощью простого агрегирования, например, так:

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

Работал отлично, я сделал это , но включал в dtVisited в моей группе предложение, дающее мне нежелательные результаты, я знал, что это было легче, чем я это делал! –

-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; 

Это позволяет получить все столбцы, связанные с последней записью.

+1

Поскольку он не нуждается в id, то ваниль max/group хватит, я думаю, –

Смежные вопросы